JsonUtil.java 2.58 KB
package com.bigdata.test;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.apache.commons.lang.StringUtils;

import java.util.List;

public class JsonUtil {

    /**
     * 将对象序列化为Json字符串
     * 注意:obj String类型的值Null将会被转化成""
     *
     * @param obj 对象
     * @return String Json字符串
     */
    public static final String toJson(Object obj) {
        return JSONObject.toJSONString(obj, SerializerFeature.WriteNullStringAsEmpty);
    }


    /**
     * 将对象序列化为Json字符串
     *
     * @param obj 对象
     * @return String Json字符串
     */
    public static final String toJson(Object obj, SerializerFeature... features) {
        return JSONObject.toJSONString(obj, features);
    }


    /**
     * 将Json字符串反序列化为对象
     *
     * @param jsonString Json字符串
     * @param clazz      需要转换到的对象类
     * @return <T>对象
     */
    public static final <T> T toObj(String jsonString, Class<T> clazz) {
        return JSONObject.parseObject(jsonString, clazz);
    }

    public static final <T> T toObj(String jsonString, TypeReference<T> typeReference) {
        return JSONObject.parseObject(jsonString, typeReference);
    }

    /**
     * 将Json字符串反序列化为数组对象
     *
     * @param jsonString Json字符串
     * @param clazz      需要转换到的对象类(数组内的对象实体)
     * @return List<T>数组对象
     */
    public static final <T> List<T> toList(String jsonString, Class<T> clazz) {
        return JSONObject.parseArray(jsonString, clazz);
    }

    /**
     * 将Map转化为对象
     *
     * @param map
     * @param clazz 需要转换到的对象类
     * @return <T>对象
     */
    public static final <T> T toObj(Object map, Class<T> clazz) {
        return JSONObject.parseObject(JSONObject.toJSONString(map, SerializerFeature.WriteMapNullValue), clazz);
    }

    public static boolean isJson(String content) {
        if(StringUtils.isEmpty(content)){
            return false;
        }
        boolean isJsonObject = true;
        boolean isJsonArray = true;
        try {
            JSONObject.parseObject(content);
        } catch (Exception e) {
            isJsonObject = false;
        }
        try {
            JSONObject.parseArray(content);
        } catch (Exception e) {
            isJsonArray = false;
        }
        if(!isJsonObject && !isJsonArray){
            return false;
        }
        return true;
    }

}