JSONUtil

package com.xxx.utils;

import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.ValueFilter;

public final class JSONUtil {

    /**
     * 默认json格式化方式
     */
    public static final SerializerFeature[] DEFAULT_FORMAT = {
            SerializerFeature.DisableCircularReferenceDetect,
            SerializerFeature.WriteDateUseDateFormat,
            SerializerFeature.WriteEnumUsingToString,
            SerializerFeature.IgnoreNonFieldGetter,
            SerializerFeature.SkipTransientField,
            SerializerFeature.WriteNullBooleanAsFalse,
            SerializerFeature.WriteNullNumberAsZero,
            SerializerFeature.WriteNullStringAsEmpty,
            SerializerFeature.WriteNullListAsEmpty,
            SerializerFeature.WriteNullBooleanAsFalse,
            SerializerFeature.WriteMapNullValue, };

    public static final ValueFilter filter = new ValueFilter() {
        @Override
        public Object process(Object obj, String s, Object v) {
            if (v == null)
                return "";
            return v;
        }
    };

    private JSONUtil() {
    }

    /**
     * 从json获取指定key的字符串
     *
     * @param json
     *            json字符串
     * @param key
     *            字符串的key
     * @return 指定key的值
     */
    public static Object getStringFromJSONObject(final String json,
            final String key) {
        return JSON.parseObject(json).getString(key);
    }

    /**
     * 将字符串转换成JSON字符串
     *
     * @param jsonString
     *            json字符串
     * @return 转换成的json对象
     */
    public static JSONObject getJSONFromString(final String jsonString) {
        if (StrUtil.isBlank(jsonString)) {
            return new JSONObject();
        }
        return JSON.parseObject(jsonString);
    }

    /**
     * 将json字符串,转换成指定java bean
     *
     * @param jsonStr
     *            json串对象
     * @param beanClass
     *            指定的bean
     * @param <T>
     *            任意bean的类型
     * @return 转换后的java bean对象
     */
    public static <T> T toBean(String jsonStr, Class<T> beanClass) {
        return JSON.parseObject(jsonStr, beanClass);
    }
    
    public static <T> T toBean(String jsonStr, TypeReference<T> type) {
        return JSON.parseObject(jsonStr, type);
    }

    /**
     * @param obj
     *            需要转换的java bean
     * @param <T>
     *            入参对象类型泛型
     * @return 对应的json字符串
     */
    public static <T> String toJson(T obj) {
        return JSON.toJSONString(obj, DEFAULT_FORMAT);
    }

    /**
     * 通过Map生成一个json字符串
     *
     * @param map
     *            需要转换的map
     * @return json串
     */
    public static String toJson(Map<String, Object> map) {
        return JSON.toJSONString(map, DEFAULT_FORMAT);
    }

    /**
     * 美化传入的json,使得该json字符串容易查看
     *
     * @param jsonString
     *            需要处理的json串
     * @return 美化后的json串
     */
    public static String prettyJson(String jsonString) {
        return JSON.toJSONString(getJSONFromString(jsonString), true);
    }

    public static <T> String prettyJson(T obj) {
        return JSON.toJSONString(obj, true);
    }

    /**
     * 将传入的json字符串转换成Map
     *
     * @param jsonString
     *            需要处理的json串
     * @return 对应的map
     */
    public static Map<String, Object> toMap(String jsonString) {
        return getJSONFromString(jsonString);
    }

}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值