java json转换(二)

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);
    }
}

 ConverHelper 详见:https://www.cnblogs.com/hanjun0612/p/9779781.html

posted @ 2019-01-28 16:16  正怒月神  阅读(320)  评论(0编辑  收藏  举报