版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hanjun0612/article/details/86679085
ConverHelper 详见:https://blog.csdn.net/hanjun0612/article/details/77891569
package com.kps.common.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Created by helka067 on 2018/7/20.
* json字符串,jsonobject, java对象
*
*/
@SuppressWarnings("all")
public class FastJsonUtils {
private static final SerializeConfig config =new SerializeConfig();
private static final SerializerFeature[] features = { SerializerFeature.QuoteFieldNames, // 双引号
SerializerFeature.WriteMapNullValue, // 输入空值字段
SerializerFeature.WriteEnumUsingToString, // 枚举输出STRING
SerializerFeature.WriteNullBooleanAsFalse, // 布尔类型如果为null输出false
SerializerFeature.WriteNullListAsEmpty, // List字段如果为null输出为[]
//SerializerFeature.WriteNullNumberAsZero, // number类型如果为null输出0
//SerializerFeature.WriteNullStringAsEmpty, // 字符串类型如果为null输出""
SerializerFeature.SortField, // 按字段名称排序后进行输出
SerializerFeature.WriteDateUseDateFormat// 设置日期格式
};
// java对象转json
public static String getBeanToJson(Object object) {
return JSON.toJSONString(object, config, features);
}
/**
* hibernate model存在关联循环,截取层次处理
* @throws Exception
*/
public static String toHJSON(Object object, int... layers) {
if (object == null)
return "";
if (object instanceof List) {
object = ConverHelper.getListCopy((List) object, layers);
} else if (object instanceof Set) {
object = ConverHelper.getSetCopy((Set) object, layers);
} else if (object instanceof Map) {
object = ConverHelper.getMapCopy((Map) object, layers);
} else {
object = ConverHelper.getCopy(object, layers);
}
return JSON.toJSONString(object, config, features);
}
// json转java对象
public static <T> T getJsonToBean(String json, Class<T> clazz) {
return JSON.parseObject(json, clazz);
}
// json转java对象
public static <T> T getJsonToBean(String json, TypeReference<T> tr) {
return JSON.parseObject(json, tr);
}
// json转换为数组
public static <T> Object[] toArray(String json, Class<T> clazz) {
return JSON.parseArray(json, clazz).toArray();
}
// json转换为List
public static <T> List<T> toList(String json, Class<T> clazz) {
return JSON.parseArray(json, clazz);
}
// JsonObject转json
public static String JsonObjectToJson(JSONObject jo) {
return jo.toJSONString();
}
// JsonObject转java对象
public static <T> T JsonObjectToBean(JSONObject jo, Class<T> clazz) {
return jo.toJavaObject(clazz);
}
// JsonObject转java对象
public static <T> T JsonObjectToBean(JSONObject jo, TypeReference<T> tr) {
return jo.toJavaObject(tr);
}
//JsonArray转json
public static String JsonArrayToJson(JSONArray ja) {
return ja.toJSONString();
}
// JsonArray转java对象
public static <T> List<T> JsonArrayToBean(JSONArray ja, Class<T> clazz) {
return ja.toJavaList(clazz);
}
// java对象转jsonobject
public static JSONObject toJsonObject(Object object) {
String s = getBeanToJson(object);
return (JSONObject)JSONObject.toJSON(object);
}
// 将string转化为序列化的json字符串
public static Object textToJson(String text) {
Object objectJson = JSON.parse(text);
return objectJson;
}
//map转实体对象
public static <T> T mapToBean(Map map,Class<T> clazz) {
String json = getBeanToJson(map);
return JSON.parseObject(json, clazz);
}
// map转实体对象
public static <T> List<T> mapToBean(List<Map> list, Class<T> clazz) {
String json = getBeanToJson(list);
return JSON.parseArray(json, clazz);
}
}