{{>licenseInfo}}
package {{invokerPackage}};


import com.fht360.fht.utils.DateDeserializer;
import com.fht360.fht.utils.NotificationModelDeserializer;
import com.fht360.swagger.models.NotificationModelBase;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.util.Date;


public class JsonUtil {
  public static GsonBuilder gsonBuilder;

  static {
    gsonBuilder = new GsonBuilder();
    gsonBuilder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    gsonBuilder.serializeNulls();
    gsonBuilder.registerTypeAdapter(Date.class, new DateDeserializer());
    NotificationModelDeserializer deserializer = new NotificationModelDeserializer();
    gsonBuilder.registerTypeAdapter(NotificationModelBase.class, deserializer.new NotificationModelBaseObjectDeserializer());
    gsonBuilder.registerTypeAdapter(NotificationModelBase[].class, deserializer.new NotificationModelBaseArrayDeserializer());
  
  }

  public static Gson getGson() {
    return gsonBuilder.create();
  }

  public static String serialize(Object obj){
    return getGson().toJson(obj);
  }


  public static Object deserializeToClass(String jsonString, Class cls){
    return getGson().fromJson(jsonString, cls);
  }


};
