Java 随笔 JSON类库(的坑)

0. 这次灵感并不是来自大佬的博客,就是突发奇想。

Google的Gson最早是我一直优先考虑,直到公司使用了FastJSON,我才怀念昔日Gson的快乐…

Jackson Spring自带的,许多国外的优秀开源框架也集成了它,后面有空的话,再补上了。

FastJSON alibaba的好家伙,我的评价是—— 听说执行效率可观,但是学习成本也不赖

1. 就从最近在用的FastJSON说起吧

用的多的类无非:JSONObject、JSONArray、JSON
	JSONObject构造支持传入一个boolean
		false,默认=> HashMap
		true => LinkedListMap 
	JSONArray
		List
		
建议将转换的类标记Serieliable,以防有时候会出问题

在不同地方作json串&json对象转换的时候,务必注意传递之前的样子
	比如说缓存到redis,直接存入对象,取出的字符串时候再通过fastjson转成Java对象,此时需要考虑转换的json串带不带转义符
		存入的时候如果直接存Java对象,那么可能被调用了toString(),导致出现转义符
		建议
			obj=>str:JSONObject(JSONArray).toJSONString(obj)
			str=>obj:JSONObject(JSONArray).paseObject(parseArray)(JSON.toJSON(str).toString())
	报错一般是:fastjson xxx异常,报错内容中还带 ‘{’ ‘}’之类的	

如果考虑数据在不同脚本端的完整性(比如前后端使用json传输数据),此时需要考虑fastjson转换策略
	默认,null值字段会被直接干掉,看起来像是最简的表达
	JSONObject.toJSONString(json, SerializerFeature.WriteMapNullValue)

还有一个坑,有些json类库会命名类JsonObject,百度的坑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肯尼思布赖恩埃德蒙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值