List of usage examples for com.badlogic.gdx.utils JsonValue isObject
public boolean isObject()
From source file:com.ahsgaming.valleyofbones.Utils.java
License:Apache License
public static Array<Object> jsonAsArray(JsonValue json) { Array<Object> returnVal = new Array<Object>(); for (JsonValue v : json) { returnVal.add((v.isValue() ? v.asString() : (v.isObject() ? v : jsonAsArray(v)))); }//from w w w . ja v a 2s . c om return returnVal; }
From source file:com.trgk.touchwave.menuscene.RankingLoadScene.java
License:Open Source License
@Override public void act(float dt) { super.act(dt); final TGWindow rankingWindow = parent.rankingWindow; final FBService fb = FBService.getInstance(); final GameLogger logger = GameLogger.getInstance(); // Get user permission if (currentState == -1) { currentState = 0;//from w ww . ja v a 2s . c om if (!logger.notifiedRankingRealName) { getSceneManager().setCurrentScene(new FBAlertScene(this)); logger.notifiedRankingRealName = true; logger.saveGameLog(); return; } } // Get user ID if (currentState == 0) { if (logger.maxScore == -1) currentState = 6; else { if (fb.isLogonRead()) currentState = 2; else { fb.loginRead(); currentState = 1; } } } // Wait for fb read login if (currentState == 1) { if (!fb.isBusy()) { if (fb.getLastActionResult() != FBService.Result.SUCCESS) { postErrorMsg("?? ?? .", 0); currentState = 6; // Skip user status } else currentState = 2; } } // Post user data if (currentState == 2) { String reqURL = serverDomain + "ranking/"; HttpRequestBuilder requestBuilder = new HttpRequestBuilder(); JsonValue requestBodyJson = new JsonValue(JsonValue.ValueType.object); JsonValue fbIDValue = new JsonValue(fb.userID); JsonValue fbNicknameValue = new JsonValue(fb.username); JsonValue maxScoreValue = new JsonValue(GameLogger.getInstance().maxScore); JsonValue accessToken = new JsonValue(fb.getAccessToken()); fbIDValue.setName("fbID"); fbNicknameValue.setName("fbNickname"); maxScoreValue.setName("maxScore"); accessToken.setName("accessToken"); requestBodyJson.child = fbIDValue; fbIDValue.setNext(fbNicknameValue); fbNicknameValue.setNext(maxScoreValue); maxScoreValue.setNext(accessToken); String requestBody = requestBodyJson.toJson(JsonWriter.OutputType.json); final Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.PUT).url(reqURL) .header(HttpRequestHeader.ContentType, "application/json").content(requestBody).build(); currentState = 3; // Wait for http request to complete Gdx.net.sendHttpRequest(httpRequest, new Net.HttpResponseListener() { @Override public void handleHttpResponse(Net.HttpResponse httpResponse) { currentState = 4; } @Override public void failed(Throwable t) { postErrorMsg(" ?? .", 0); currentState = 6; } @Override public void cancelled() { postErrorMsg(" ?? .", 0); currentState = 6; } }); } // Get user ranking if (currentState == 4) { String reqURL = String.format(Locale.ENGLISH, serverDomain + "ranking/%d", fb.userID); HttpRequestBuilder requestBuilder = new HttpRequestBuilder(); final Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.GET).url(reqURL) .build(); currentState = 5; Gdx.net.sendHttpRequest(httpRequest, new Net.HttpResponseListener() { @Override public void handleHttpResponse(Net.HttpResponse httpResponse) { JsonReader reader = new JsonReader(); JsonValue result = reader.parse(httpResponse.getResultAsString()); if (result.isObject() && result.get("userRank") != null) { int userRank = result.getInt("userRank"); int maxScore = result.getInt("maxScore"); rankingWindow.addActor( new RankingScene.RankingEntry(userRank, fb.username, maxScore, Color.BLUE, 0)); currentState = 6; } else { postErrorMsg(" ?? .", 0); currentState = 6; } } @Override public void failed(Throwable t) { postErrorMsg(" ?? .", 0); currentState = 6; } @Override public void cancelled() { postErrorMsg(" ?? .", 0); currentState = 6; } }); } // Get total ranking if (currentState == 6) { String reqURL = serverDomain + "ranking/"; HttpRequestBuilder requestBuilder = new HttpRequestBuilder(); final Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.GET).url(reqURL) .build(); currentState = 7; Gdx.net.sendHttpRequest(httpRequest, new Net.HttpResponseListener() { @Override public void handleHttpResponse(Net.HttpResponse httpResponse) { JsonReader reader = new JsonReader(); JsonValue result = reader.parse(httpResponse.getResultAsString()); if (result.isObject() && result.get("rankings") != null) { JsonValue rankingArray = result.get("rankings"); JsonValue rankingEntry = rankingArray.child; int entryID = 1; while (rankingEntry != null) { rankingWindow.addActor( new RankingScene.RankingEntry(entryID, rankingEntry.getString("fbNickname"), rankingEntry.getInt("maxScore"), Color.BLACK, entryID)); rankingEntry = rankingEntry.next; entryID++; if (entryID == 20) break; } currentState = 8; } else { postErrorMsg("? ? .", 1); currentState = 8; } } @Override public void failed(Throwable t) { postErrorMsg("? ? .", 1); currentState = 8; } @Override public void cancelled() { postErrorMsg("? ? .", 1); currentState = 8; } }); } if (currentState == 8) { fb.logout(); gotoParent(); currentState = 9; } }
From source file:mt.Json.java
License:Apache License
/** @param type May be null if the type is unknown. * @param elementType May be null if the type is unknown. * @return May be null. *//*from w ww. j a v a 2 s . c o m*/ public <T> T readValue(Class<T> type, Class elementType, JsonValue jsonData) { if (jsonData == null) return null; if (jsonData.isObject()) { String className = typeName == null ? null : jsonData.getString(typeName, null); if (className != null) { jsonData.remove(typeName); try { type = (Class<T>) ClassReflection.forName(className); } catch (ReflectionException ex) { type = tagToClass.get(className); if (type == null) throw new SerializationException(ex); } } Object object; if (type != null) { if (type == String.class || type == Integer.class || type == Boolean.class || type == Float.class || type == Long.class || type == Double.class || type == Short.class || type == Byte.class || type == Character.class || type.isEnum()) { return readValue("value", type, jsonData); } Serializer serializer = classToSerializer.get(type); if (serializer != null) return (T) serializer.read(this, jsonData, type); object = newInstance(type); if (object instanceof Serializable) { ((Serializable) object).read(this, jsonData); return (T) object; } if (object instanceof HashMap) { HashMap result = (HashMap) object; for (JsonValue child = jsonData.child(); child != null; child = child.next()) result.put(child.name(), readValue(elementType, null, child)); return (T) result; } } else if (defaultSerializer != null) { return (T) defaultSerializer.read(this, jsonData, type); } else return (T) jsonData; if (object instanceof ObjectMap) { ObjectMap result = (ObjectMap) object; for (JsonValue child = jsonData.child(); child != null; child = child.next()) result.put(child.name(), readValue(elementType, null, child)); return (T) result; } readFields(object, jsonData); return (T) object; } if (type != null) { Serializer serializer = classToSerializer.get(type); if (serializer != null) return (T) serializer.read(this, jsonData, type); } if (jsonData.isArray()) { if ((type == null || type == Object.class) || ClassReflection.isAssignableFrom(Array.class, type)) { Array newArray = (type == null || type == Object.class) ? new Array() : (Array) newInstance(type); for (JsonValue child = jsonData.child(); child != null; child = child.next()) newArray.add(readValue(elementType, null, child)); return (T) newArray; } if (ClassReflection.isAssignableFrom(List.class, type)) { List newArray = (type == null || type.isInterface()) ? new ArrayList() : (List) newInstance(type); for (JsonValue child = jsonData.child(); child != null; child = child.next()) newArray.add(readValue(elementType, null, child)); return (T) newArray; } if (type.isArray()) { Class componentType = type.getComponentType(); if (elementType == null) elementType = componentType; Object newArray = ArrayReflection.newInstance(componentType, jsonData.size); int i = 0; for (JsonValue child = jsonData.child(); child != null; child = child.next()) ArrayReflection.set(newArray, i++, readValue(elementType, null, child)); return (T) newArray; } throw new SerializationException( "Unable to convert value to required type: " + jsonData + " (" + type.getName() + ")"); } if (jsonData.isNumber()) { try { if (type == null || type == float.class || type == Float.class) return (T) (Float) jsonData.asFloat(); if (type == int.class || type == Integer.class) return (T) (Integer) jsonData.asInt(); if (type == long.class || type == Long.class) return (T) (Long) jsonData.asLong(); if (type == double.class || type == Double.class) return (T) (Double) (double) jsonData.asFloat(); if (type == String.class) return (T) Float.toString(jsonData.asFloat()); if (type == short.class || type == Short.class) return (T) (Short) (short) jsonData.asInt(); if (type == byte.class || type == Byte.class) return (T) (Byte) (byte) jsonData.asInt(); } catch (NumberFormatException ignored) { } jsonData = new JsonValue(jsonData.asString()); } if (jsonData.isBoolean()) { try { if (type == null || type == boolean.class || type == Boolean.class) return (T) (Boolean) jsonData.asBoolean(); } catch (NumberFormatException ignored) { } jsonData = new JsonValue(jsonData.asString()); } if (jsonData.isString()) { String string = jsonData.asString(); if (type == null || type == String.class) return (T) string; try { if (type == int.class || type == Integer.class) return (T) Integer.valueOf(string); if (type == float.class || type == Float.class) return (T) Float.valueOf(string); if (type == long.class || type == Long.class) return (T) Long.valueOf(string); if (type == double.class || type == Double.class) return (T) Double.valueOf(string); if (type == short.class || type == Short.class) return (T) Short.valueOf(string); if (type == byte.class || type == Byte.class) return (T) Byte.valueOf(string); } catch (NumberFormatException ignored) { } if (type == boolean.class || type == Boolean.class) return (T) Boolean.valueOf(string); if (type == char.class || type == Character.class) return (T) (Character) string.charAt(0); if (ClassReflection.isAssignableFrom(Enum.class, type)) { Object[] constants = type.getEnumConstants(); for (int i = 0, n = constants.length; i < n; i++) if (string.equals(constants[i].toString())) return (T) constants[i]; } if (type == CharSequence.class) return (T) string; throw new SerializationException( "Unable to convert value to required type: " + jsonData + " (" + type.getName() + ")"); } return null; }
From source file:org.itas.common.json.JsonReader.java
License:Apache License
public JsonValue parse(char[] data, int offset, int length) { int cs, p = offset, pe = length, eof = pe, top = 0; int[] stack = new int[4]; int s = 0;//from ww w . j a v a2 s. c o m Array<String> names = new Array(8); boolean needsUnescape = false; boolean discardBuffer = false; // When unquotedString and true/false/null both match, this discards unquotedString. RuntimeException parseRuntimeEx = null; boolean debug = false; if (debug) System.out.println(); try { // line 3 "JsonReader.java" { cs = json_start; top = 0; } // line 8 "JsonReader.java" { int _klen; int _trans = 0; int _acts; int _nacts; int _keys; int _goto_targ = 0; _goto: while (true) { switch (_goto_targ) { case 0: if (p == pe) { _goto_targ = 4; continue _goto; } if (cs == 0) { _goto_targ = 5; continue _goto; } case 1: _match: do { _keys = _json_key_offsets[cs]; _trans = _json_index_offsets[cs]; _klen = _json_single_lengths[cs]; if (_klen > 0) { int _lower = _keys; int _mid; int _upper = _keys + _klen - 1; while (true) { if (_upper < _lower) break; _mid = _lower + ((_upper - _lower) >> 1); if (data[p] < _json_trans_keys[_mid]) _upper = _mid - 1; else if (data[p] > _json_trans_keys[_mid]) _lower = _mid + 1; else { _trans += (_mid - _keys); break _match; } } _keys += _klen; _trans += _klen; } _klen = _json_range_lengths[cs]; if (_klen > 0) { int _lower = _keys; int _mid; int _upper = _keys + (_klen << 1) - 2; while (true) { if (_upper < _lower) break; _mid = _lower + (((_upper - _lower) >> 1) & ~1); if (data[p] < _json_trans_keys[_mid]) _upper = _mid - 2; else if (data[p] > _json_trans_keys[_mid + 1]) _lower = _mid + 2; else { _trans += ((_mid - _keys) >> 1); break _match; } } _trans += _klen; } } while (false); cs = _json_trans_targs[_trans]; if (_json_trans_actions[_trans] != 0) { _acts = _json_trans_actions[_trans]; _nacts = (int) _json_actions[_acts++]; while (_nacts-- > 0) { switch (_json_actions[_acts++]) { case 0: // line 106 "JsonReader.rl" { s = p; needsUnescape = false; discardBuffer = false; } break; case 1: // line 111 "JsonReader.rl" { needsUnescape = true; } break; case 2: // line 114 "JsonReader.rl" { String name = new String(data, s, p - s); s = p; if (needsUnescape) name = unescape(name); if (debug) System.out.println("name: " + name); names.add(name); } break; case 3: // line 121 "JsonReader.rl" { if (!discardBuffer) { String value = new String(data, s, p - s); s = p; if (needsUnescape) value = unescape(value); String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("string: " + name + "=" + value); string(name, value); } } break; case 4: // line 131 "JsonReader.rl" { String value = new String(data, s, p - s); s = p; String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("double: " + name + "=" + Double.parseDouble(value)); number(name, Double.parseDouble(value)); } break; case 5: // line 138 "JsonReader.rl" { String value = new String(data, s, p - s); s = p; String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("long: " + name + "=" + Long.parseLong(value)); number(name, Long.parseLong(value)); } break; case 6: // line 145 "JsonReader.rl" { String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("boolean: " + name + "=true"); bool(name, true); discardBuffer = true; } break; case 7: // line 151 "JsonReader.rl" { String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("boolean: " + name + "=false"); bool(name, false); discardBuffer = true; } break; case 8: // line 157 "JsonReader.rl" { String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("null: " + name); string(name, null); discardBuffer = true; } break; case 9: // line 163 "JsonReader.rl" { String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("startObject: " + name); startObject(name); { if (top == stack.length) { int[] newStack = new int[stack.length * 2]; System.arraycopy(stack, 0, newStack, 0, stack.length); stack = newStack; } { stack[top++] = cs; cs = 8; _goto_targ = 2; if (true) continue _goto; } } } break; case 10: // line 169 "JsonReader.rl" { if (debug) System.out.println("endObject"); pop(); { cs = stack[--top]; _goto_targ = 2; if (true) continue _goto; } } break; case 11: // line 174 "JsonReader.rl" { String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("startArray: " + name); startArray(name); { if (top == stack.length) { int[] newStack = new int[stack.length * 2]; System.arraycopy(stack, 0, newStack, 0, stack.length); stack = newStack; } { stack[top++] = cs; cs = 46; _goto_targ = 2; if (true) continue _goto; } } } break; case 12: // line 180 "JsonReader.rl" { if (debug) System.out.println("endArray"); pop(); { cs = stack[--top]; _goto_targ = 2; if (true) continue _goto; } } break; // line 217 "JsonReader.java" } } } case 2: if (cs == 0) { _goto_targ = 5; continue _goto; } if (++p != pe) { _goto_targ = 1; continue _goto; } case 4: if (p == eof) { int __acts = _json_eof_actions[cs]; int __nacts = (int) _json_actions[__acts++]; while (__nacts-- > 0) { switch (_json_actions[__acts++]) { case 3: // line 121 "JsonReader.rl" { if (!discardBuffer) { String value = new String(data, s, p - s); s = p; if (needsUnescape) value = unescape(value); String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("string: " + name + "=" + value); string(name, value); } } break; case 4: // line 131 "JsonReader.rl" { String value = new String(data, s, p - s); s = p; String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("double: " + name + "=" + Double.parseDouble(value)); number(name, Double.parseDouble(value)); } break; case 5: // line 138 "JsonReader.rl" { String value = new String(data, s, p - s); s = p; String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("long: " + name + "=" + Long.parseLong(value)); number(name, Long.parseLong(value)); } break; case 6: // line 145 "JsonReader.rl" { String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("boolean: " + name + "=true"); bool(name, true); discardBuffer = true; } break; case 7: // line 151 "JsonReader.rl" { String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("boolean: " + name + "=false"); bool(name, false); discardBuffer = true; } break; case 8: // line 157 "JsonReader.rl" { String name = names.size > 0 ? names.pop() : null; if (debug) System.out.println("null: " + name); string(name, null); discardBuffer = true; } break; // line 298 "JsonReader.java" } } } case 5: } break; } } // line 212 "JsonReader.rl" } catch (RuntimeException ex) { parseRuntimeEx = ex; } JsonValue root = this.root; this.root = null; current = null; lastChild.clear(); if (p < pe) { int lineNumber = 1; for (int i = 0; i < p; i++) if (data[i] == '\n') lineNumber++; throw new SerializationException( "Error parsing JSON on line " + lineNumber + " near: " + new String(data, p, pe - p), parseRuntimeEx); } else if (elements.size != 0) { JsonValue element = elements.peek(); elements.clear(); if (element != null && element.isObject()) throw new SerializationException("Error parsing JSON, unmatched brace."); else throw new SerializationException("Error parsing JSON, unmatched bracket."); } else if (parseRuntimeEx != null) { throw new SerializationException("Error parsing JSON: " + new String(data), parseRuntimeEx); } return root; }