package io.c0nnector.github.paradise.util; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; /** * Gson helper */ public class UtilGson { private static Gson gson; private static Gson prettyGson; public static Gson getGson(){ if (gson == null) gson = new Gson(); return gson; } /** * Enables pretty print * @return */ public static Gson getPrettyGson(){ if (prettyGson ==null) prettyGson = new GsonBuilder().setPrettyPrinting().create(); return prettyGson; } /** * Converts a pojo into a gson string * @param pojoToSerialize * @return */ public static String serialize(Object pojoToSerialize){ return getPrettyGson().toJson(pojoToSerialize); } public static <T> T deserialize(String serializedObject, Class<T> cls){ return getPrettyGson().fromJson(serializedObject, cls); } public static <T>String serialize(ArrayList<T> listToSerialize){ return getPrettyGson().toJson(listToSerialize); } public static <T> List<T> deserialize(String arrayAsJsonString){ Type type = new TypeToken<List<T>>(){}.getType(); return getPrettyGson().fromJson(arrayAsJsonString, type); } }