package com.tzld.piaoquan.recommend.model.produce.util;

import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;

@Slf4j
public class JSONUtils implements Serializable {


    public static String toJson(Object obj) {
        if (obj == null) {
            return "";
        }
        try {
            return new Gson().toJson(obj);
        } catch (Exception e) {
            log.error("toJson exception", e);
            return "";
        }
    }

    public static <T> T fromJson(String value, TypeToken<T> typeToken, T defaultValue) {

        if (StringUtils.isBlank(value)) {
            return defaultValue;
        }
        try {
            return new Gson().fromJson(value, typeToken.getType());
        } catch (Exception e) {
            log.error("fromJson error! value=[{}]", value, e);
        }
        return defaultValue;
    }

}
