List of usage examples for com.google.gson JsonElement isJsonArray
public boolean isJsonArray()
From source file:com.blackypaw.mc.i18n.chat.ChatComponentDeserializer.java
License:Open Source License
/** * Detects the type of the given json element and deserializes its contents into the appropriate * component types.// ww w.j a v a 2s .c om * * @param json The json element to be deserialized * * @return The deserialized chat component */ private ChatComponent deserializeComponent(JsonElement json) { if (json.isJsonPrimitive()) { // Only text components can be raw primitives (strings): return this.deserializeTextComponent(json); } else if (json.isJsonArray()) { // Only text components can be json arrays: return this.deserializeComponentArray(json.getAsJsonArray()); } else { return this.deserializeTextComponent(json); } }
From source file:com.blackypaw.mc.i18n.chat.ChatComponentDeserializer.java
License:Open Source License
/** * Creates a text component given its JSON representation. Both the shorthand notation as * a raw string as well as the notation as a full-blown JSON object are supported. * * @param json The JSON element to be deserialized into a text component * * @return The deserialized TextComponent *//*from w w w.j a v a 2s . c o m*/ private TextComponent deserializeTextComponent(JsonElement json) { final TextComponent component = new TextComponent(""); if (json.isJsonPrimitive()) { JsonPrimitive primitive = json.getAsJsonPrimitive(); if (primitive.isString()) { component.setText(primitive.getAsString()); } } else if (json.isJsonObject()) { JsonObject object = json.getAsJsonObject(); if (object.has("text")) { JsonElement textElement = object.get("text"); if (textElement.isJsonPrimitive()) { JsonPrimitive textPrimitive = textElement.getAsJsonPrimitive(); if (textPrimitive.isString()) { component.setText(textPrimitive.getAsString()); } } } if (object.has("extra")) { JsonElement extraElement = object.get("extra"); if (extraElement.isJsonArray()) { JsonArray extraArray = extraElement.getAsJsonArray(); for (int i = 0; i < extraArray.size(); ++i) { JsonElement fieldElement = extraArray.get(i); component.addChild(this.deserializeComponent(fieldElement)); } } } } return component; }
From source file:com.bzcentre.dapiPush.MeetingPayload.java
License:Open Source License
private Object extractAps(JsonElement in) { if (in == null || in.isJsonNull()) return null; if (in.isJsonArray()) { List<Object> list = new ArrayList<>(); JsonArray arr = in.getAsJsonArray(); for (JsonElement anArr : arr) { list.add(extractAps(anArr)); }//from ww w . j a va 2 s. com return list; } else if (in.isJsonObject()) { Map<String, Object> map = new LinkedTreeMap<>(); JsonObject obj = in.getAsJsonObject(); Set<Map.Entry<String, JsonElement>> entitySet = obj.entrySet(); for (Map.Entry<String, JsonElement> entry : entitySet) { map.put(entry.getKey(), extractAps(entry.getValue())); NginxClojureRT.log.debug(TAG + entry.getKey() + "=>" + map.get(entry.getKey()) + "=>" + map.get(entry.getKey()).getClass().getTypeName()); switch (entry.getKey()) { case "dapi": this.setDapi(map.get(entry.getKey())); break; case "acme1": this.setAcme1(map.get(entry.getKey())); break; case "acme2": this.setAcme2(map.get(entry.getKey())); break; case "acme3": this.setAcme3(map.get(entry.getKey())); break; case "acme4": this.setAcme4(map.get(entry.getKey())); break; case "acme5": this.setAcme5(map.get(entry.getKey())); break; case "acme6": this.setAcme6(map.get(entry.getKey())); break; case "acme7": this.setAcme7(map.get(entry.getKey())); break; case "acme8": this.setAcme8(map.get(entry.getKey())); break; case "aps": NginxClojureRT.log.debug(TAG + "aps initialized"); break; case "badge": this.getAps().setBadge(map.get(entry.getKey())); break; case "sound": this.getAps().setSound(map.get(entry.getKey())); break; case "alert": NginxClojureRT.log.debug(TAG + "alert initialized"); break; case "title": this.getAps().getAlert().setTitle(map.get(entry.getKey())); break; case "body": this.getAps().getAlert().setBody(map.get(entry.getKey())); break; case "action-loc-key": this.getAps().getAlert().setActionLocKey(map.get(entry.getKey())); break; default: NginxClojureRT.log.info(TAG + "Unhandled field : " + entry.getKey()); break; } } return map; } else if (in.isJsonPrimitive()) { JsonPrimitive prim = in.getAsJsonPrimitive(); if (prim.isBoolean()) { return prim.getAsBoolean(); } else if (prim.isString()) { return prim.getAsString(); } else if (prim.isNumber()) { Number num = prim.getAsNumber(); // here you can handle double int/long values // and return any type you want // this solution will transform 3.0 float to long values if (Math.ceil(num.doubleValue()) == num.longValue()) { return num.longValue(); } else { return num.doubleValue(); } } } NginxClojureRT.log.info("Handling json null"); return null; }
From source file:com.ca.dvs.utilities.raml.RamlUtil.java
License:Open Source License
/** * @param jsonString// www .j ava2s .c o m * @return the appropriate JsonElement object from the parsed jsonString */ private static Object getJsonElementValue(String jsonString) { JsonParser jsonParser = new JsonParser(); JsonElement jsonElement = jsonParser.parse(jsonString); if (jsonElement.isJsonObject()) { return jsonElement.getAsJsonObject(); } else if (jsonElement.isJsonArray()) { return jsonElement.getAsJsonArray(); } else if (jsonElement.isJsonNull()) { return jsonElement.getAsJsonNull(); } else if (jsonElement.isJsonPrimitive()) { return jsonElement.getAsJsonPrimitive(); } else { return null; } }
From source file:com.ccc.crest.core.cache.crest.Paging.java
License:Open Source License
protected void pagingDeserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Iterator<Entry<String, JsonElement>> objectIter = ((JsonObject) json).entrySet().iterator(); while (objectIter.hasNext()) { Entry<String, JsonElement> objectEntry = objectIter.next(); String key = objectEntry.getKey(); JsonElement value = objectEntry.getValue(); if (pagingDeserialize(key, value)) continue; if (ItemsKey.equals(key)) { JsonElement objectElement = objectEntry.getValue(); if (!objectElement.isJsonArray()) throw new JsonParseException( "Expected " + ItemsKey + " array received json element " + objectElement.toString()); int size = ((JsonArray) objectElement).size(); for (int i = 0; i < size; i++) { JsonElement childElement = ((JsonArray) objectElement).get(i); items.add(getPagedItem(childElement, typeOfT, context)); }/* ww w . j a v a 2 s .c o m*/ } else LoggerFactory.getLogger(getClass()) .warn(key + " has a field not currently being handled: \n" + objectEntry.toString()); } }
From source file:com.ccc.crest.core.cache.crest.schema.option.CcpType.java
License:Open Source License
@Override public CcpType deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Iterator<Entry<String, JsonElement>> objectIter = ((JsonObject) json).entrySet().iterator(); while (objectIter.hasNext()) { Entry<String, JsonElement> objectEntry = objectIter.next(); String key = objectEntry.getKey(); JsonElement value = objectEntry.getValue(); if (DescriptionKey.equals(key)) description = checkNull(value); else if (OptionalKey.equals(key)) optional = value.getAsBoolean(); else if (ExtraKey.equals(key)) { JsonElement objectElement = objectEntry.getValue(); if (objectElement.isJsonArray()) { int size = ((JsonArray) objectElement).size(); for (int i = 0; i < size; i++) { JsonElement childElement = ((JsonArray) objectElement).get(i); extraData.add(childElement.getAsString()); }/*from w w w . j ava 2 s . co m*/ } else extraData.add(checkNull(value)); } else if (SubContentKey.equals(key)) { if (!value.isJsonNull()) { Iterator<Entry<String, JsonElement>> varsIter = ((JsonObject) value).entrySet().iterator(); do { if (!varsIter.hasNext()) break; Entry<String, JsonElement> varsEntry = varsIter.next(); CcpType subContent = new CcpType(varsEntry.getKey()); subContent = subContent.deserialize(varsEntry.getValue(), typeOfT, context); children.add(subContent); } while (true); } } else if (PrettyTypeKey.equals(key)) typePrettyName = checkNull(value); else if (TypeKey.equals(key)) type = checkNull(value); else LoggerFactory.getLogger(getClass()) .warn(key + " has a field not currently being handled: \n" + objectEntry.toString()); } return this; }
From source file:com.ccc.crest.core.cache.crest.schema.option.Representations.java
License:Open Source License
@Override public Representations deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Iterator<Entry<String, JsonElement>> objectIter = ((JsonObject) json).entrySet().iterator(); while (objectIter.hasNext()) { Entry<String, JsonElement> objectEntry = objectIter.next(); String key = objectEntry.getKey(); JsonElement value = objectEntry.getValue(); if (RepresentationsKey.equals(key)) { JsonElement objectElement = objectEntry.getValue(); if (!objectElement.isJsonArray()) throw new JsonParseException("Expected " + RepresentationsKey + " array received json element " + objectElement.toString()); int size = ((JsonArray) objectElement).size(); for (int i = 0; i < size; i++) { JsonElement childElement = ((JsonArray) objectElement).get(i); Representation representation = new Representation(); representations.add(representation); representation.deserialize(childElement, typeOfT, context); }//from w ww .ja v a 2 s .c o m } else LoggerFactory.getLogger(getClass()) .warn(key + " has a field not currently being handled: \n" + objectEntry.toString()); } return this; }
From source file:com.ccc.crest.core.cache.crest.tournament.Bans.java
License:Open Source License
@Override public Bans deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Iterator<Entry<String, JsonElement>> objectIter = ((JsonObject) json).entrySet().iterator(); while (objectIter.hasNext()) { Entry<String, JsonElement> objectEntry = objectIter.next(); String key = objectEntry.getKey(); JsonElement value = objectEntry.getValue(); if (SelfKey.equals(key)) { self = new ExternalRef(); self.deserialize(value, typeOfT, context); } else if (RedKey.equals(key)) { JsonElement objectElement = objectEntry.getValue(); if (!objectElement.isJsonArray()) throw new JsonParseException( "Expected " + RedKey + " array received json element " + objectElement.toString()); int size = ((JsonArray) objectElement).size(); for (int i = 0; i < size; i++) { JsonElement childElement = ((JsonArray) objectElement).get(i); Ban child = new Ban(); redTeam.add(child);/* w ww . j a va2 s .c om*/ child.deserialize(childElement, typeOfT, context); } } else if (BlueKey.equals(key)) { JsonElement objectElement = objectEntry.getValue(); if (!objectElement.isJsonArray()) throw new JsonParseException( "Expected " + BlueKey + " array received json element " + objectElement.toString()); int size = ((JsonArray) objectElement).size(); for (int i = 0; i < size; i++) { JsonElement childElement = ((JsonArray) objectElement).get(i); Ban child = new Ban(); blueTeam.add(child); child.deserialize(childElement, typeOfT, context); } } else LoggerFactory.getLogger(getClass()) .warn(key + " has a field not currently being handled: \n" + objectEntry.toString()); } return this; }
From source file:com.ccc.crest.core.cache.crest.tournament.Series.java
License:Open Source License
@Override public Series deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Iterator<Entry<String, JsonElement>> objectIter = ((JsonObject) json).entrySet().iterator(); while (objectIter.hasNext()) { Entry<String, JsonElement> objectEntry = objectIter.next(); String key = objectEntry.getKey(); JsonElement value = objectEntry.getValue(); if (SeriesUrlKey.equals(key)) { seriesUrl = new ExternalRef(); seriesUrl.deserialize(value, typeOfT, context); } else if (TypeKey.equals(key)) type = value.getAsString();/* w w w. j a va 2 s . co m*/ else if (NameKey.equals(key)) name = value.getAsString(); else if (TeamStatsKey.equals(key)) { JsonElement objectElement = objectEntry.getValue(); if (!objectElement.isJsonArray()) throw new JsonParseException("Expected " + TeamStatsKey + " array received json element " + objectElement.toString()); int size = ((JsonArray) objectElement).size(); for (int i = 0; i < size; i++) { JsonElement childElement = ((JsonArray) objectElement).get(i); TeamStats child = new TeamStats(); teamStats.add(child); child.deserialize(childElement, typeOfT, context); } } else LoggerFactory.getLogger(getClass()) .warn(key + " has a field not currently being handled: \n" + objectEntry.toString()); } return this; }
From source file:com.ccc.crest.core.cache.crest.tournament.SeriesElement.java
License:Open Source License
@Override public SeriesElement deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Iterator<Entry<String, JsonElement>> objectIter = ((JsonObject) json).entrySet().iterator(); while (objectIter.hasNext()) { Entry<String, JsonElement> objectEntry = objectIter.next(); String key = objectEntry.getKey(); JsonElement value = objectEntry.getValue(); if (TotalCountStrKey.equals(key)) totalCountStr = value.getAsString(); else if (ItemsKey.equals(key)) { JsonElement objectElement = objectEntry.getValue(); if (!objectElement.isJsonArray()) throw new JsonParseException( "Expected " + ItemsKey + " array received json element " + objectElement.toString()); int size = ((JsonArray) objectElement).size(); for (int i = 0; i < size; i++) { JsonElement childElement = ((JsonArray) objectElement).get(i); TeamInfo child = new TeamInfo(); teamInfos.add(child);/*from w ww . j a v a2 s.c o m*/ child.deserialize(childElement, typeOfT, context); } } else if (PageCountKey.equals(key)) pageCount = value.getAsLong(); else if (PageCountStrKey.equals(key)) pageCountStr = value.getAsString(); else if (TotalCountKey.equals(key)) totalCount = value.getAsLong(); else LoggerFactory.getLogger(getClass()) .warn(key + " has a field not currently being handled: \n" + objectEntry.toString()); } return this; }