Example usage for com.google.gson JsonElement isJsonArray

List of usage examples for com.google.gson JsonElement isJsonArray

Introduction

In this page you can find the example usage for com.google.gson JsonElement isJsonArray.

Prototype

public boolean isJsonArray() 

Source Link

Document

provides check for verifying if this element is an array or not.

Usage

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();
}