Example usage for com.google.gson JsonElement getAsJsonPrimitive

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

Introduction

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

Prototype

public JsonPrimitive getAsJsonPrimitive() 

Source Link

Document

convenience method to get this element as a JsonPrimitive .

Usage

From source file:com.helion3.prism.util.DataUtil.java

License:MIT License

/**
 * Attempts to convert a JsonElement to an a known type.
 *
 * @param element JsonElement//from   w ww . jav a2  s . c  om
 * @return Optional<Object>
 */
private static Optional<Object> jsonElementToObject(JsonElement element) {
    Object result = null;

    if (element.isJsonObject()) {
        result = dataViewFromJson(element.getAsJsonObject());
    } else if (element.isJsonPrimitive()) {
        JsonPrimitive prim = element.getAsJsonPrimitive();

        if (prim.isBoolean()) {
            result = prim.getAsBoolean();
        } else if (prim.isNumber()) {
            result = prim.getAsNumber().intValue();
        } else if (prim.isString()) {
            result = prim.getAsString();
        }
    } else if (element.isJsonArray()) {
        List<Object> list = new ArrayList<Object>();
        JsonArray arr = element.getAsJsonArray();
        arr.forEach(new Consumer<JsonElement>() {
            @Override
            public void accept(JsonElement t) {
                Optional<Object> translated = jsonElementToObject(t);
                if (translated.isPresent()) {
                    list.add(translated.get());
                }
            }
        });

        result = list;
    }

    return Optional.ofNullable(result);
}

From source file:com.hi3project.dandelion.gip.codec.json.JSONGIPCodec.java

License:Open Source License

private String jsonValueAsString(JsonElement value) throws GIPEventCodeDecodeErrorException {

    JsonPrimitive primitive = value.getAsJsonPrimitive();

    if (primitive.isString()) {
        return primitive.getAsString();
    } else if (primitive.isBoolean()) {
        return (Boolean.toString(primitive.getAsBoolean()));
    } else if (primitive.isNumber()) {
        return (Double.toString(primitive.getAsDouble()));
    } else {//  w  ww.  j av  a2 s .co  m
        throw new GIPEventCodeDecodeErrorException("", "Unable to decode JsonValue.");
    }

}

From source file:com.ibm.common.activitystreams.internal.ASObjectAdapter.java

License:Apache License

/**
 * Method deserialize./*  www .jav  a2s  .  co m*/
 * @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  a2 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.EnumAdapter.java

License:Apache License

/**
 * Method deserialize./*from  w  w w  . ja  v a  2 s  .  co  m*/
 * @param json JsonElement
 * @param typeOfT Type
 * @param context JsonDeserializationContext
 * @return E
 * @throws JsonParseException
 * @see com.google.gson.JsonDeserializer#deserialize(JsonElement, Type, JsonDeserializationContext)
 */
public E deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
        throws JsonParseException {
    checkArgument(json.isJsonPrimitive());
    JsonPrimitive jp = json.getAsJsonPrimitive();
    checkArgument(jp.isString());
    return des.convert(jp.getAsString());
}

From source file:com.ibm.common.activitystreams.internal.LinkValueAdapter.java

License:Apache License

/**
 * Method deserialize.//from w  w w  .java  2 s .  co 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./*  ww w  .j  a va 2  s  .c o 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.//from   ww  w.  ja  v a  2  s .co 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.internal.NaturalLanguageValueAdapter.java

License:Apache License

/**
 * Method deserialize.//from w  w w .j a  va  2  s .com
 * @param element JsonElement
 * @param type1 Type
 * @param context JsonDeserializationContext
        
        
        
 * @return NLV * @throws JsonParseException * @see com.google.gson.JsonDeserializer#deserialize(JsonElement, Type, JsonDeserializationContext) */
public NLV deserialize(JsonElement element, Type type1, JsonDeserializationContext context)
        throws JsonParseException {
    checkArgument(element.isJsonPrimitive() || element.isJsonObject());
    if (element.isJsonPrimitive()) {
        JsonPrimitive prim = element.getAsJsonPrimitive();
        checkArgument(prim.isString());
        return NLV.SimpleNLV.make(prim.getAsString());
    } else {
        try {
            JsonObject obj = element.getAsJsonObject();
            NLV.MapNLV.Builder builder = NLV.MapNLV.make();
            for (Entry<String, JsonElement> entry : obj.entrySet())
                builder.set(entry.getKey(), entry.getValue().getAsString());
            return builder.get();
        } catch (Throwable t) {
            throw new IllegalArgumentException();
        }
    }
}

From source file:com.ibm.common.activitystreams.internal.SimpleAdapter.java

License:Apache License

/**
 * Method deserialize.// ww  w . ja v a2  s  . c  o  m
 * @param json JsonElement
 * @param type Type
 * @param context JsonDeserializationContext
        
        
        
 * @return T * @throws JsonParseException * @see com.google.gson.JsonDeserializer#deserialize(JsonElement, Type, JsonDeserializationContext) */
public T deserialize(JsonElement json, Type type, JsonDeserializationContext context)
        throws JsonParseException {
    return deserialize(json.getAsJsonPrimitive().getAsString());
}