List of usage examples for com.google.gson JsonElement isJsonArray
public boolean isJsonArray()
From source file:com.hybris.datahub.service.impl.DefaultJsonService.java
License:Open Source License
@Override public List<Map<String, String>> parse(final String json) { final List<Map<String, String>> result = new LinkedList<Map<String, String>>(); final JsonElement jsonElement = new JsonParser().parse(json); if (jsonElement.isJsonArray()) { final Iterator<JsonElement> iterator = jsonElement.getAsJsonArray().iterator(); while (iterator.hasNext()) { final JsonElement jsonElementInArray = iterator.next(); result.add(convertJsonObject(jsonElementInArray.getAsJsonObject())); }// ww w. jav a2s .co m } else if (jsonElement.isJsonObject()) { result.add(convertJsonObject(jsonElement.getAsJsonObject())); } return result; }
From source file:com.hybris.mobile.lib.http.converter.JsonDataConverter.java
License:Open Source License
/** * @param data String of character to be parsed * @param property Attributes to be parse * @param element JSON element to get data from * @return List of String// ww w.j a v a2s .c om */ protected List<String> getValuesFromPropertyElement(String data, String property, String element, boolean recursive) { List<String> listToReturn = new ArrayList<>(); if (data == null) { throw new IllegalArgumentException(); } JsonParser parser = new JsonParser(); JsonArray jsonArray; JsonElement jsonElement; try { if (StringUtils.isNotBlank(property)) { jsonElement = parser.parse(data).getAsJsonObject().get(property); } else { jsonElement = parser.parse(data); } if (jsonElement != null) { if (jsonElement.isJsonArray()) { jsonArray = jsonElement.getAsJsonArray(); } else { jsonArray = new JsonArray(); jsonArray.add(jsonElement); } if (jsonArray != null) { for (JsonElement currentJsonElement : jsonArray) { if (StringUtils.isNotBlank(element)) { if (recursive) { try { listToReturn.addAll(getValuesFromPropertyElement(currentJsonElement.toString(), property, element, recursive)); } catch (NoSuchElementException e) { Log.d(TAG, "End of getting the recursive property " + property + "."); } } currentJsonElement = currentJsonElement.getAsJsonObject().get(element); } if (currentJsonElement != null) { if (currentJsonElement.isJsonPrimitive()) { listToReturn.add(currentJsonElement.getAsString()); } else { listToReturn.add(currentJsonElement.toString()); } } else { Log.d(TAG, "No data found for element " + element + "."); } } } } else { Log.d(TAG, "No data found on " + data + " for property " + property + "."); } } catch (Exception e) { Log.e(TAG, "Error parsing the data " + data + " for property " + property + " and element " + element + "."); throw new NoSuchElementException("Error parsing the data " + data + " for property " + property + " and element " + element + "."); } return listToReturn; }
From source file:com.ibasco.agql.core.AbstractWebApiInterface.java
License:Open Source License
/** * Converts the underlying processed content to a {@link com.google.gson.JsonObject} instance *//*from w w w .j a v a2 s . com*/ @SuppressWarnings("unchecked") private <A> A postProcessConversion(Res response) { log.debug("ConvertToJson for Response = {}, {}", response.getMessage().getStatusCode(), response.getMessage().getHeaders()); JsonElement processedElement = response.getProcessedContent(); if (processedElement != null) { if (processedElement.isJsonObject()) return (A) processedElement.getAsJsonObject(); else if (processedElement.isJsonArray()) return (A) processedElement.getAsJsonArray(); } throw new AsyncGameLibUncheckedException("No parsed content found for response" + response); }
From source file:com.ibasco.agql.protocols.valve.steam.webapi.adapters.StoreAppPcRequirementsDeserializer.java
License:Open Source License
@Override public StoreAppPcRequirements deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { StoreAppPcRequirements requirements = new StoreAppPcRequirements(); //Fail fast and just return an empty value if (json.isJsonNull() || json.isJsonPrimitive() || (json.isJsonArray() && json.getAsJsonArray().size() == 0)) { return requirements; }// ww w . ja va 2 s . c om JsonObject object = json.getAsJsonObject(); if (object.has("minimum")) { requirements.setMinimum(object.get("minimum").getAsString()); } if (object.has("recommended")) { requirements.setRecommended(object.get("recommended").getAsString()); } return requirements; }
From source file:com.ibm.common.activitystreams.internal.ASObjectAdapter.java
License:Apache License
/** * Method deserialize.//from ww w. j a v a 2 s .c om * @param element JsonElement * @param type Type * @param context JsonDeserializationContext * @return ASObject * @throws JsonParseException * @see com.google.gson.JsonDeserializer#deserialize(JsonElement, Type, JsonDeserializationContext) **/ public final ASObject deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { JsonObject obj = (JsonObject) element; ASObject.AbstractBuilder<?, ?> builder = null; Model propMap = null; TypeValue tv = null; if (knowsType(type)) { builder = builderFor(type); propMap = modelFor(type); } else { if (obj.has("objectType")) { tv = context.deserialize(obj.get("objectType"), TypeValue.class); @SuppressWarnings("rawtypes") Class<? extends ASObject.AbstractBuilder> _class = schema.builderForObjectTypeOrClass(tv.id(), (Class) type); if (_class != null) { propMap = schema.forObjectClassOrType(_class, tv.id()); if (!_class.isInterface()) { try { builder = _class.getConstructor(String.class).newInstance(tv.id()); } catch (Throwable t) { try { builder = _class.newInstance(); builder.set("objectType", tv); } catch (Throwable t2) { builder = Makers.object(tv); } } } else builder = Makers.object(tv); } else { builder = Makers.object(tv); propMap = schema.forObjectClassOrType(ASObject.Builder.class, tv.id()); } } else { if (obj.has("verb") && (obj.has("actor") || obj.has("object") || obj.has("target"))) { builder = activity(); propMap = schema.forObjectClassOrType(Activity.Builder.class, "activity"); } else if (obj.has("items")) { builder = collection(); propMap = schema.forObjectClassOrType(Collection.Builder.class, "collection"); } else { @SuppressWarnings("rawtypes") Class<? extends ASObject.AbstractBuilder> _class = schema.builderFor((Class) type); if (_class != null) { if (!_class.isInterface()) { try { builder = _class.newInstance(); } catch (Throwable t) { builder = object(); } } else builder = object(); } if (builder == null) builder = object(); // anonymous propMap = schema.forObjectClass(builder.getClass()); propMap = propMap != null ? propMap : schema.forObjectClass(ASObject.Builder.class); } } } for (Entry<String, JsonElement> entry : obj.entrySet()) { String name = entry.getKey(); if (name.equalsIgnoreCase("objectType")) continue; Class<?> _class = propMap.get(name); JsonElement val = entry.getValue(); if (val.isJsonPrimitive()) builder.set(name, _class != null ? context.deserialize(val, _class) : primConverter.convert(val.getAsJsonPrimitive())); else if (val.isJsonArray()) { builder.set(name, LinkValue.class.isAssignableFrom(_class != null ? _class : Object.class) ? context.deserialize(val, LinkValue.class) : convert(val.getAsJsonArray(), _class, context, builder())); } else if (val.isJsonObject()) builder.set(name, context.deserialize(val, propMap.has(name) ? propMap.get(name) : ASObject.class)); } return builder.get(); }
From source file:com.ibm.common.activitystreams.internal.ASObjectAdapter.java
License:Apache License
/** * Method processArray.// w w w .j a v a 2 s . c o m * @param arr JsonArray * @param _class Class<?> * @param context JsonDeserializationContext * @param list ImmutableList.Builder<Object> */ private void processArray(JsonArray arr, Class<?> _class, JsonDeserializationContext context, ImmutableList.Builder<Object> list) { for (JsonElement mem : arr) { if (mem.isJsonPrimitive()) list.add(_class != null ? context.deserialize(mem, _class) : primConverter.convert(mem.getAsJsonPrimitive())); else if (mem.isJsonObject()) list.add(context.deserialize(mem, _class != null ? _class : ASObject.class)); else if (mem.isJsonArray()) list.add(convert(mem.getAsJsonArray(), _class, context, builder())); } }
From source file:com.ibm.common.activitystreams.internal.LinkValueAdapter.java
License:Apache License
/** * Method deserialize.//from ww w . j av a 2s. c o m * @param el JsonElement * @param type Type * @param context JsonDeserializationContext * @return LinkValue * @throws JsonParseException * @see com.google.gson.JsonDeserializer#deserialize(JsonElement, Type, JsonDeserializationContext) */ public LinkValue deserialize(JsonElement el, Type type, JsonDeserializationContext context) throws JsonParseException { checkArgument(el.isJsonArray() || el.isJsonObject() || el.isJsonPrimitive()); if (el.isJsonArray()) { LinkValue.ArrayLinkValue.Builder builder = linkValues(); for (JsonElement aryel : el.getAsJsonArray()) builder.add(context.<LinkValue>deserialize(aryel, LinkValue.class)); return builder.get(); } else if (el.isJsonObject()) { JsonObject obj = el.getAsJsonObject(); if (obj.has("objectType")) { TypeValue tv = context.deserialize(obj.get("objectType"), TypeValue.class); Model pMap = schema.forObjectType(tv.id()); return context.deserialize(el, pMap != null && pMap.type() != null ? pMap.type() : ASObject.class); } else { return context.deserialize(el, ASObject.class); } } else { JsonPrimitive prim = el.getAsJsonPrimitive(); checkArgument(prim.isString()); return linkValue(prim.getAsString()); } }
From source file:com.ibm.common.activitystreams.internal.MultimapAdapter.java
License:Apache License
/** * Method arraydes./*from ww w . j a v a 2s . co m*/ * @param array JsonArray * @param context JsonDeserializationContext * @return ImmutableList<Object> */ protected static ImmutableList<Object> arraydes(JsonArray array, JsonDeserializationContext context) { ImmutableList.Builder<Object> builder = ImmutableList.builder(); for (JsonElement child : array) if (child.isJsonArray()) builder.add(arraydes(child.getAsJsonArray(), context)); else if (child.isJsonObject()) builder.add(context.deserialize(child, ASObject.class)); else if (child.isJsonPrimitive()) builder.add(primConverter.convert(child.getAsJsonPrimitive())); return builder.build(); }
From source file:com.ibm.common.activitystreams.internal.MultimapAdapter.java
License:Apache License
/** * Method deserialize./*ww w.j av a 2s . c o m*/ * @param json JsonElement * @param typeOfT Type * @param context JsonDeserializationContext * @return Multimap * @throws JsonParseException * @see com.google.gson.JsonDeserializer#deserialize(JsonElement, Type, JsonDeserializationContext) */ public Multimap deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { ImmutableMultimap.Builder mm = ImmutableMultimap.builder(); JsonObject obj = json.getAsJsonObject(); for (Map.Entry<String, JsonElement> entry : obj.entrySet()) { String key = entry.getKey(); JsonElement val = entry.getValue(); if (val.isJsonArray()) { for (JsonElement el : val.getAsJsonArray()) { if (el.isJsonArray()) mm.put(key, arraydes(el.getAsJsonArray(), context)); else if (el.isJsonObject()) mm.put(key, context.deserialize(el, ASObject.class)); else if (el.isJsonPrimitive()) mm.put(key, primConverter.convert(el.getAsJsonPrimitive())); } } else if (val.isJsonObject()) { mm.put(key, context.deserialize(val, ASObject.class)); } else if (val.isJsonPrimitive()) { mm.put(key, primConverter.convert(val.getAsJsonPrimitive())); } } return mm.build(); }
From source file:com.ibm.common.activitystreams.legacy.MediaLinkAdapter.java
License:Apache License
public MediaLink deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { checkArgument(json.isJsonObject());/* w w w. j av a2 s. co m*/ JsonObject obj = (JsonObject) json; MediaLink.Builder builder = LegacyMakers.mediaLink(); for (Map.Entry<String, JsonElement> entry : obj.entrySet()) { String name = entry.getKey(); JsonElement val = entry.getValue(); if (val.isJsonPrimitive()) builder.set(name, primConverter.convert(val.getAsJsonPrimitive())); else if (val.isJsonArray()) builder.set(name, context.deserialize(val, Iterable.class)); else if (val.isJsonObject()) builder.set(name, context.deserialize(val, ASObject.class)); } return builder.get(); }