Example usage for com.google.gson.reflect TypeToken getType

List of usage examples for com.google.gson.reflect TypeToken getType

Introduction

In this page you can find the example usage for com.google.gson.reflect TypeToken getType.

Prototype

public final Type getType() 

Source Link

Document

Gets underlying Type instance.

Usage

From source file:com.github.jobs.templates.fetcher.StackOverflowUsersFetcher.java

License:Apache License

public List<SOUser> findUser(String username) {
    String url = String.format(URL, username);
    try {//from   ww  w .  j  a v  a 2  s  .  c  om
        String response = HttpHandler.getInstance().getRequest(url);
        // convert json to object
        Gson gson = new Gson();
        TypeToken<List<SOUser>> typeToken = new TypeToken<List<SOUser>>() {
        };
        JSONObject jsonObject = new JSONObject(response);
        JSONArray jsonArray = jsonObject.getJSONArray("items");
        return gson.fromJson(jsonArray.toString(), typeToken.getType());
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

From source file:com.github.ljtfreitas.restify.http.client.message.converter.json.GsonMessageConverter.java

License:Open Source License

@Override
public T read(HttpResponseMessage httpResponseMessage, Type expectedType)
        throws RestifyHttpMessageReadException {
    try {//from w  ww. j av a  2s .  co m
        TypeToken<?> token = TypeToken.get(expectedType);

        Reader json = new InputStreamReader(httpResponseMessage.body());

        return this.gson.fromJson(json, token.getType());
    } catch (JsonIOException | JsonSyntaxException e) {
        throw new RestifyHttpMessageReadException(e);
    }
}

From source file:com.github.yangweigbh.volleyx.demo.request.GsonRequest.java

License:Apache License

public GsonRequest(String url, TypeToken<T> token, Listener<T> listener, ErrorListener errorListener) {
    super(Method.GET, url, errorListener);
    mGson = new Gson();
    mType = token.getType();
    mListener1 = listener;/*from w  ww. j a  va2s . c  o m*/
}

From source file:com.google.caliper.json.ImmutableListTypeAdatperFactory.java

License:Apache License

@SuppressWarnings("unchecked")
@Override//from w w w.  j ava  2  s.c  o  m
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) {
    Type type = typeToken.getType();
    if (typeToken.getRawType() != ImmutableList.class || !(type instanceof ParameterizedType)) {
        return null;
    }

    com.google.common.reflect.TypeToken<ImmutableList<?>> betterToken = (com.google.common.reflect.TypeToken<ImmutableList<?>>) com.google.common.reflect.TypeToken
            .of(typeToken.getType());
    final TypeAdapter<ArrayList<?>> arrayListAdapter = (TypeAdapter<ArrayList<?>>) gson.getAdapter(
            TypeToken.get(betterToken.getSupertype(List.class).getSubtype(ArrayList.class).getType()));
    return new TypeAdapter<T>() {
        @Override
        public void write(JsonWriter out, T value) throws IOException {
            ArrayList<?> arrayList = Lists.newArrayList((List<?>) value);
            arrayListAdapter.write(out, arrayList);
        }

        @Override
        public T read(JsonReader in) throws IOException {
            ArrayList<?> arrayList = arrayListAdapter.read(in);
            return (T) ImmutableList.copyOf(arrayList);
        }
    };
}

From source file:com.google.caliper.json.ImmutableMapTypeAdapterFactory.java

License:Apache License

@SuppressWarnings("unchecked")
@Override/*from w w  w. j  a  va2  s . c  om*/
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) {
    Type type = typeToken.getType();
    if (typeToken.getRawType() != ImmutableMap.class || !(type instanceof ParameterizedType)) {
        return null;
    }

    com.google.common.reflect.TypeToken<ImmutableMap<?, ?>> betterToken = (com.google.common.reflect.TypeToken<ImmutableMap<?, ?>>) com.google.common.reflect.TypeToken
            .of(typeToken.getType());
    final TypeAdapter<HashMap<?, ?>> hashMapAdapter = (TypeAdapter<HashMap<?, ?>>) gson
            .getAdapter(TypeToken.get(betterToken.getSupertype(Map.class).getSubtype(HashMap.class).getType()));
    return new TypeAdapter<T>() {
        @Override
        public void write(JsonWriter out, T value) throws IOException {
            HashMap<?, ?> hashMap = Maps.newHashMap((Map<?, ?>) value);
            hashMapAdapter.write(out, hashMap);
        }

        @Override
        public T read(JsonReader in) throws IOException {
            HashMap<?, ?> hashMap = hashMapAdapter.read(in);
            return (T) ImmutableMap.copyOf(hashMap);
        }
    };
}

From source file:com.google.caliper.json.NaturallySortedMapTypeAdapterFactory.java

License:Apache License

@SuppressWarnings("unchecked")
@Override// w w w  .  j a  v a  2  s  .  co  m
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) {
    Type type = typeToken.getType();
    if (!CLASSES.contains(typeToken.getRawType()) || !(type instanceof ParameterizedType)) {
        return null;
    }

    com.google.common.reflect.TypeToken<SortedMap<?, ?>> betterToken = (com.google.common.reflect.TypeToken<SortedMap<?, ?>>) com.google.common.reflect.TypeToken
            .of(typeToken.getType());
    final TypeAdapter<Map<?, ?>> mapAdapter = (TypeAdapter<Map<?, ?>>) gson
            .getAdapter(TypeToken.get(betterToken.getSupertype(Map.class).getType()));
    return new TypeAdapter<T>() {
        @Override
        public void write(JsonWriter out, T value) throws IOException {
            TreeMap<?, ?> treeMap = Maps.newTreeMap((SortedMap<?, ?>) value);
            mapAdapter.write(out, treeMap);
        }

        @SuppressWarnings("rawtypes")
        @Override
        public T read(JsonReader in) throws IOException {
            TreeMap treeMap = Maps.newTreeMap();
            treeMap.putAll(mapAdapter.read(in));
            return (T) treeMap;
        }
    };
}

From source file:com.googleapis.maps.services.impl.BaseGoogleMapsApiQuery.java

License:Apache License

/**
 * Unmarshall./*from  w  ww . j ava2 s.c om*/
 * 
 * @param typeToken the type token
 * @param response the response
 * 
 * @return the e
 */
@SuppressWarnings("unchecked")
protected <E> E unmarshall(TypeToken<E> typeToken, JsonElement response) {
    Gson gson = getGsonBuilder().create();
    return (E) gson.fromJson(response, typeToken.getType());
}

From source file:com.gradleware.tooling.toolingutils.distribution.PublishedGradleVersions.java

License:Apache License

/**
 * Creates a new instance based on the provided version information.
 *
 * @param json the json string containing the version information
 * @return the new instance//from   ww w. ja v  a2  s. c  om
 */
public static PublishedGradleVersions create(String json) {
    // convert versions from JSON String to JSON Map
    Gson gson = new GsonBuilder().create();
    TypeToken<List<Map<String, String>>> typeToken = new TypeToken<List<Map<String, String>>>() {
    };
    List<Map<String, String>> versions = gson.fromJson(json, typeToken.getType());

    // create instance
    return new PublishedGradleVersions(versions);
}

From source file:com.gs.reladomo.serial.gson.GsonWrappedTypeAdaptorFactory.java

License:Apache License

@Override
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) {
    if (Serialized.class.equals(typeToken.getRawType())) {
        Type type = typeToken.getType();
        if (type instanceof ParameterizedType) {
            Type[] typeArguments = ((ParameterizedType) type).getActualTypeArguments();
            return new GsonWrappedTypedAdapter((Class) typeArguments[0]);
        }/*from  w ww . j av a  2 s  .  c om*/
        return new GsonWrappedTypedAdapter(null);
    }
    if (SerializedList.class.equals(typeToken.getRawType())) {
        Type type = typeToken.getType();
        if (type instanceof ParameterizedType) {
            Type[] typeArguments = ((ParameterizedType) type).getActualTypeArguments();
            return new GsonWrappedListTypedAdapter((Class) typeArguments[0]);
        }
        return new GsonWrappedListTypedAdapter(null);
    }
    return null;
}

From source file:com.hkm.disqus.api.gson.BlacklistsEntryTypeAdapterFactory.java

License:Apache License

@Override
public <T> TypeAdapter<T> create(final Gson gson, TypeToken<T> type) {
    // Return null if not a blacklist entry object
    if (!type.getType().equals(Entry.class)) {
        return null;
    }//from w w  w .ja  v a2s  .  c o m

    // Get delegate
    final TypeAdapter<T> delegate = gson.getDelegateAdapter(this, type);

    // Return adapter
    return new TypeAdapter<T>() {

        @Override
        public void write(JsonWriter out, T value) throws IOException {
            delegate.write(out, value);
        }

        @Override
        public T read(JsonReader in) throws IOException {
            JsonElement jsonTree = gson.fromJson(in, JsonElement.class);
            JsonElement value = jsonTree.getAsJsonObject().get("value");

            // Process the entry with the delegate
            T entry = delegate.fromJsonTree(jsonTree);

            // Process value if needed
            if (value.isJsonObject()) {
                ((Entry) entry).value = gson.fromJson(value, User.class);
            }

            // Return entry
            return entry;
        }

    };
}