You need to create your own deserializer.
Assuming your class is called MyAwesomeClass , you implement something like
MyAwesomeClassDeserializer implements JsonDeserializer<MyAwesomeClass> { @Override public MyAwesomeClass deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext ctx) throws JsonParseException {
and register it using GSON, for example:
Gson gson = new GsonBuilder() .registerTypeAdapter(MyAwesomeClass.class, new MyAwesomeClassDeserializer()) .create();
Now you just call the fromJson(String, TypeToken) method to get your deserialized object.
MyAweSomeClass instance = gson.fromJson(json, new TypeToken<MyAwesomeClass>(){}.getType());
source share