阿里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

posted @ 2019-10-22 15:26  十月围城小童鞋  阅读(638)  评论(0编辑  收藏  举报