package org.hepx.jgt.common.json;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.hepx.jgt.common.date.DateFormatType;
import org.hepx.jgt.common.exception.JgtException;
/**
* JSON序列化工具类 --依赖 fastJson
*
* @author: Koala
* @Date: 14-8-21 下午6:23
* @Version: 1.0
*/
public class JsonUtil {
/**
* 序列化对象
* @param o
* @return
*/
public static String objectToJson(Object o) {
try {
return JSON.toJSONString(o);
} catch (Exception e) {
throw new JgtException("不能序列化对象为Json", e);
}
}
/**
* 序列化对象
* @param o
* @param type 日期格式化
* @return
*/
public static String objectToJson(Object o,DateFormatType type) {
return objectToJson (o,type, SerializerFeature.DisableCircularReferenceDetect);
}
/**
* 序列化对象
* @param o
* @param type
* @param s
* @return
*/
public static String objectToJson(Object o,DateFormatType type,SerializerFeature s) {
try {
return JSON.toJSONStringWithDateFormat(o,type.getValue(), s);
} catch (Exception e) {
throw new RuntimeException("不能序列化对象为Json", e);
}
}
/**
* 将 json 字段串转换为 对象.
* @param json 字符串
* @param clazz 需要转换为的类
* @return
*/
public static <T> T json2Object(String json, Class<T> clazz) {
try {
return JSON.parseObject(json, clazz);
} catch (Exception e) {
throw new JgtException("将 Json 转换为对象时异常,数据是:" + json, e);
}
}
}