compile 'com.google.code.gson:gson:2.8.1'
public class ParseUtils {
public static <T> T parseJson(String result, Type t) {
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(result.toString());
JsonObject root = element.getAsJsonObject();
JsonElement itemElement = root.get("data");
String data = itemElement.toString();
if (data == null || data.equalsIgnoreCase("null")
|| data.equals("{}") || data.equals("[]")) {
return null;
}
try {
Gson gson = new GsonBuilder().registerTypeAdapter(
Date.class, new JsonDateDeserializer()).serializeNulls().create();
return gson.fromJson(data, t);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static String toJson(Object obj) {
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class,
new JsonDateSerializer()).create();
return gson.toJson(obj);
}
static class JsonDateDeserializer implements JsonDeserializer<Date> {
@Override
public Date deserialize(JsonElement je, Type arg1,
JsonDeserializationContext arg2) throws JsonParseException {
String s = je.getAsJsonPrimitive().getAsString();
long l = Long.parseLong(s.substring(6, s.length() - 2));
Date d = new Date(l);
return d;
}
}
}