package {{invokerPackage}}; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; import io.swagger.client.model.*; public class JsonUtil { public static GsonBuilder gsonBuilder; static { gsonBuilder = new GsonBuilder(); gsonBuilder.serializeNulls(); gsonBuilder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); } public static Gson getGson() { return gsonBuilder.create(); } public static String serialize(Object obj){ return getGson().toJson(obj); } public static T deserializeToList(String jsonString, Class cls){ return getGson().fromJson(jsonString, getListTypeForDeserialization(cls)); } public static T deserializeToObject(String jsonString, Class cls){ return getGson().fromJson(jsonString, getTypeForDeserialization(cls)); } public static Type getListTypeForDeserialization(Class cls) { Type type = null; switch (cls.getSimpleName()) { {{#models}}{{#model}} case "{{classname}}": type = new TypeToken>(){}.getType(); break; {{/model}}{{/models}} default: type = new TypeToken>(){}.getType(); break; } return type; } public static Type getTypeForDeserialization(Class cls) { Type type = null; switch (cls.getSimpleName()) { {{#models}}{{#model}} case "{{classname}}": type = new TypeToken<{{classname}}>(){}.getType(); break; {{/model}}{{/models}} default: type = new TypeToken(){}.getType(); break; } return type; } };