private Type token(Class<?> main, Class<?> type) { return TypeToken.getParameterized(main, type).getType(); } }
public <T> List<T> getAsListOfThisType(Class<T> clazz) throws Exception { return new Gson().fromJson(object, TypeToken.getParameterized(List.class, clazz).getType()); }
@Override public List<DefaultFieldTypeWithHints> getDefaultFieldTypes() { Type fieldTypeListType = TypeToken.getParameterized(List.class, DefaultFieldTypeWithHints.class).getType(); InputStream is = mResources.openRawResource(R.raw.default_field_types); List<DefaultFieldTypeWithHints> fieldTypes = null; try(Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"))) { fieldTypes = mGson.fromJson(reader, fieldTypeListType); } catch (IOException e) { loge(e, "Exception during deserialization of FieldTypes."); } return fieldTypes; } }
static Object PGObjectFieldToMap(Object data, Class clazz) { if (data == null) return null; String valueToParse; if (data instanceof PGobject) valueToParse = ((PGobject) data).getValue(); else if (data instanceof String) valueToParse = (String) data; else return null; if (valueToParse != null && !valueToParse.isEmpty()) { if (clazz == null) clazz = Map.class; try { Object mapped = new Gson().fromJson(valueToParse, clazz); if (mapped != null) return mapped; } catch (Exception e) { List list = new Gson().fromJson(valueToParse, com.google.gson.reflect.TypeToken.getParameterized(List.class, clazz).getType()); if (list != null && !list.isEmpty()) return list; } } // if something went wrong or was null return null; } }
static Object PGObjectFieldToMap(Object data, Class clazz) { if (data == null) return null; String valueToParse; if (data instanceof PGobject) valueToParse = ((PGobject) data).getValue(); else if (data instanceof String) valueToParse = (String) data; else return null; if (valueToParse != null && !valueToParse.isEmpty()) { if (clazz == null) clazz = Map.class; try { Object mapped = new Gson().fromJson(valueToParse, clazz); if (mapped != null) return mapped; } catch (Exception e) { List list = new Gson().fromJson(valueToParse, TypeToken.getParameterized(List.class, clazz).getType()); if (list != null && !list.isEmpty()) return list; } } // if something went wrong or was null return null; } }
static Object PGObjectFieldToMap(Object data, Class clazz) { if (data == null) return null; String valueToParse; if (data instanceof PGobject) valueToParse = ((PGobject) data).getValue(); else if (data instanceof String) valueToParse = (String) data; else return null; if (valueToParse != null && !valueToParse.isEmpty()) { if (clazz == null) clazz = Map.class; try { Object mapped = new Gson().fromJson(valueToParse, clazz); if (mapped != null) return mapped; } catch (Exception e) { List list = new Gson().fromJson(valueToParse, com.google.gson.reflect.TypeToken.getParameterized(List.class, clazz).getType()); if (list != null && !list.isEmpty()) return list; } } // if something went wrong or was null return null; } }
@Override public <T> JsonWriter toJsonArray(Class<T> type, Collection<T> values) { ObjectUtils.argumentNotNull(type, "Type must be not null"); if (values != null) { return new GsonJsonWriter(gson, values, TypeToken.getParameterized(Collection.class, type).getType()); } return null; }
return builder.create().fromJson(json, TypeToken.getParameterized(List.class, clazz).getType());
@Override public <T> List<T> fromJsonArray(JsonReader reader, Class<T> type) { ObjectUtils.argumentNotNull(reader, "JsonReader must be not null"); ObjectUtils.argumentNotNull(type, "Type must be not null"); try { return gson.fromJson(reader.getReader(), TypeToken.getParameterized(List.class, type).getType()); } catch (Exception e) { throw new JsonReadException("Failed to deserialize JSON for array type [" + type + "]", e); } }
@Override public Observable<List<Board>> getBoards(Date lastSync) { NextcloudRequest request = buildRequest(GET, "boards", lastSync).build(); return nextcloudAPI.performRequestObservable(TypeToken.getParameterized(List.class, Board.class).getType(), request); }
@Override public Observable<List<Stack>> getStacks(long boardId, Date lastSync) { NextcloudRequest request = buildRequest(GET, "boards/{boardId}/stacks", lastSync, boardId).build(); return nextcloudAPI.performRequestObservable(TypeToken.getParameterized(List.class, Stack.class).getType(), request); }
@Override public Observable<List<Stack>> getArchivedStacks(long boardId, Date lastSync) { NextcloudRequest request = buildRequest(GET, "boards/{boardId}/stacks/archived", lastSync, boardId).build(); return nextcloudAPI.performRequestObservable(TypeToken.getParameterized(List.class, Stack.class).getType(), request); }
"application/json")); Reader reader = new InputStreamReader(stream, "UTF-8"); Type type = TypeToken.getParameterized(QueryResult.class, classOfT).getType(); QueryResult<T> result = client.getGson().fromJson(reader, type); return result;