阿里fastjson工具类
package com.common.utils.jsonUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* 阿里fastjson
*
* @author nachuan
* @create 2019-04-28 18:10
*/
public class MyFastJsonUtils extends JSON implements Serializable {
private static final SerializeConfig config;
static {
config = new SerializeConfig();
// 使用和json-lib兼容的日期输出格式
config.put(java.util.Date.class, new JSONLibDataFormatSerializer());
// 使用和json-lib兼容的日期输出格式
config.put(java.sql.Date.class, new JSONLibDataFormatSerializer());
}
/**
* 输出空置字段
*/
private static final SerializerFeature[] features = {SerializerFeature.WriteMapNullValue,
// list字段如果为null,输出为[],而不是null
SerializerFeature.WriteNullListAsEmpty,
// 数值字段如果为null,输出为0,而不是null
// SerializerFeature.WriteNullNumberAsZero,
// Boolean字段如果为null,输出为false,而不是null
SerializerFeature.WriteNullBooleanAsFalse,
// 字符类型字段如果为null,输出为"",而不是null
SerializerFeature.WriteNullStringAsEmpty
};
public static JSONObject getFson(){
return new JSONObject();
}
public static JSONArray getFsonArray(){
return new JSONArray();
}
/**
* 类转json字符串 时间复杂化处理,并且会打印空属性
* @param object
* @return
*/
public static String objToJsonStrWithCF(Object object) {
return JSON.toJSONString(object, config, features);
}
/**
* 类转json字符串 时间复杂化处理,空属性不会打印 "time":1556449527766,"minutes":5,"seconds":27,"hours":19,"month":3,"year":119,"timezoneOffset":-480,"day":0,"date":28
* @param object
* @return
*/
public static String objToJsonStrWithC(Object object) {
return JSON.toJSONString(object, config);
}
/**
* 类转json字符串 会打印对象中所有的属性,没值的直接为空
* @param object
* @return
*/
public static String objToJsonStrWithF(Object object) {
return JSON.toJSONString(object);
}
/**
* 推荐使用
* 类转json字符串 只打印对象中有值的,没有值的不打印
* @param object
* @return
*/
public static String obj2JsonStr(Object object) {
ParserConfig.getGlobalInstance().setAsmEnable(false);
return JSON.toJSONString(object,features);
}
/**
* json字符串转为object类
* @param text
* @return
*/
public static Object strToBean(String text) {
return JSON.parse(text);
}
/**
* json字符串转bean
* @param text
* @param clazz
* @param <T>
* @return
*/
public static <T> T strToBean(String text, Class<T> clazz) {
return JSON.parseObject(text, clazz);
}
/**
* json字符串转为数组
* @param text
* @param <T>
* @return
*/
public static <T> Object[] strToArray(String text) {
return strToArray(text, null);
}
/**
* json字符串转为对象数组
* @param text
* @param clazz
* @param <T>
* @return
*/
public static <T> Object[] strToArray(String text, Class<T> clazz) {
return JSON.parseArray(text, clazz).toArray();
}
/**
* json字符串转为 对象集合
* @param text
* @param clazz
* @param <T>
* @return
*/
public static <T> List<T> strToList(String text, Class<T> clazz) {
return JSON.parseArray(text, clazz);
}
/**
* 将string转化为序列化的json字符串
* @return
*/
public static Object strToJson(String str) {
Object objectJson = JSON.parse(str);
return objectJson;
}
/**
* json字符串转化为map
* @param str
* @return
*/
public static <K, V> Map<K, V> strToMap(String str) {
Map<K, V> m = (Map<K, V>) JSONObject.parseObject(str);
return m;
}
/**
* 转换JSON字符串为对象
* @param str
* @param clazz
* @return
*/
public static Object strToObject(String str, Class<?> clazz) {
return JSONObject.parseObject(str, clazz);
}
/**
* 将map转化为string
* @param map
* @return
*/
public static <K, V> String mapToStr(Map<K, V> map) {
String s = JSONObject.toJSONString(map);
return s;
}
}
本文链接:https://blog.csdn.net/weixin_39530695/article/details/96588337
划船不用桨、杨帆不等风、一生全靠浪