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