java json工具类_基于fastjson封装的Java json工具类

fastjson版本: 1.2.62

前言

我一直认为, 如果使用第三方工具, 一定是需要做一层封装, 这样才能最大限度分解软件结构的层次, 不至于牵一发而动全身, 比如我其实一直都是gson爱好者, 也使用了Gson做了一个工具类的封装(基于Gson封装的Java工具类), 但是因为一些特殊原因, 我调整为fastjson, 因为业务所有地方都使用了封装的JsonUtil, 所以我对该类做了底层调整, 通过之前的单测之后, 无压力上线, 并稳定运行.

代码

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer;

import com.alibaba.fastjson.serializer.SerializeConfig;

import com.alibaba.fastjson.serializer.SerializerFeature;

import java.util.List;

import java.util.Map;

/**

* 基于fastjson封装json工具

*

* @author videomonster

* @since 1.0.0

*/

public final class JsonUtil {

private static final SerializeConfig SERIALIZE_CONFIG;

private static final SerializerFeature[] SERIALIZER_FEATURES = {

// 输出空置字段

SerializerFeature.WriteMapNullValue,

// list字段如果为null,输出为[],而不是null

SerializerFeature.WriteNullListAsEmpty,

// 数值字段如果为null,输出为0,而不是null

SerializerFeature.WriteNullNumberAsZero,

// Boolean字段如果为null,输出为false,而不是null

SerializerFeature.WriteNullBooleanAsFalse,

// 字符类型字段如果为null,输出为"",而不是null

SerializerFeature.WriteNullStringAsEmpty

};

static {

SERIALIZE_CONFIG = new SerializeConfig();

// 使用和json-lib兼容的日期输出格式

SERIALIZE_CONFIG.put(java.util.Date.class, new JSONLibDataFormatSerializer());

}

/**

* 将对象转为json字符串

*

* @param object

* @return

*/

public static String toFeaturesJson(Object object) {

return JSON.toJSONString(object, config, features);

}

/**

* 将对象转为json字符串

*

* @param object

* @return

*/

public static String toJson(Object object) {

return JSON.toJSONString(object, config);

}

/**

* 将json字符串转为Object实例

*

* @param json

* @return

*/

public static Object parse(String json) {

return JSON.parse(json);

}

/**

* 将json字符串转为指定类型的实例

*

* @param json

* @param cls

* @param

* @return

*/

public static T parse(String json, Class cls) {

return JSON.parseObject(json, cls);

}

/**

* 将json转为Map

*

* @param json

* @param

* @return

*/

@SuppressWarnings("unchecked")

public static Map toMap(String json) {

return (Map) JSONObject.parseObject(json);

}

/**

* 将json转为指定类型的List

*

* @param json

* @param cls

* @param

* @return

*/

public static List toList(String json, Class cls) {

return JSON.parseArray(json, cls);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值