package tv.pluto.utils;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.lang.reflect.Type;
import java.util.logging.Logger;

public class JsonUtils {

  private static final Logger logger = Logger.getLogger(JsonUtils.class.getName());

  protected Gson gson = new GsonBuilder().setPrettyPrinting().create();

  public <T> T fromJson(String json, Type pojoClass) {
    return gson.fromJson(json, pojoClass);
  }

  public static String toJsonString(Object object) {
    ObjectMapper mapper = new ObjectMapper();
    mapper.enable(SerializationFeature.INDENT_OUTPUT);
    try {
      return mapper.writeValueAsString(object);
    } catch (Exception e) {
      logger.info("Not Valid Json: " + e.getMessage());
    }
    return null;
  }
}
