fastjson json转对象_gson确实比fastjson要好用很多,捞的我淌口水,很烦

之前一直使用的是fastjson,但是对性能上没什么要求,反而对功能的完善性有很高的要求,特别是在java和python的对象转换上有各种莫名的要求,导致掉坑里面去了。我一直以为是我用的不对,使用gson替换实现相同功能后,觉得捞的淌口水。需要认同的是,Gson是目前功能很全的Json解析神器。

一波基础知识:

gson

bean转json:

Gson gson = new Gson();String json = gson.toJson(obj);

json转bean:

Gson gson = new Gson();String json = "{"id":"1","name":"peabody"}";Man man= gson.fromJson(json, Man.class);

json转换复杂的bean:

Gson gson = new Gson();String json = "[{"id":"1","name":"peabody"},{"id":"2","name":"peapeay"}]";// 将json转换成ListList list = gson.fromJson(json, new TypeToken() {}.getType());// 将json转换成SetSet set = gson.fromJson(json, new TypeToken() {}.getType());

Fastjson

bean转json

// 将对象转换成格式化的jsonJSON.toJSONString(obj, true);// 将对象转换成非格式化的jsonJSON.toJSONString(obj, false);

json转bean:

String json = "{"id":"1","name":"peabody"}";Man man = JSON.parseObject(json, Man.class);

json转复杂的bean:

String json = "[{"id":"1","name":"peabody"},{"id":"2","name":"peapeay"}]";// 将json转换成ListList list = JSON.parseObject(json, new TypeReference(){});// 将json转换成SetSet set = JSON.parseObject(json, new TypeReference(){});

从上面的使用中,看似差不多,但是我在使用python解析和转换对象和字符串时发现:

"["{ "status": true,  "name": "peabody",  "age": "18",  "handsome": "YES"}"]"

只要python转换一次就会多一个反斜杠,比如我这里的这个实体在python中转换使用了三次才回传给java服务端,结果就是一堆的反斜杠。

然后fastjson就各种无法解析,且无法正确有效判断字符串是否为json的格式

最后用gson做了json的格式判断和对象转换

JSONObject testObject = JSONObject.parseObject(testResult);#使用gson进行格式判断if(GsonUtils.isJSON(testObject.toString())){Gson gson=new Gson();java.lang.reflect.Type listType = new TypeToken>() {}.getType();#将格式进行转化为实体类ListString json = gson.toJson(testObject, listType);List manList= gson.fromJson(json,listType);}

上面的字符串还就那个解析陈昆~为List

7bd02598ca019d35ca55bd6c9c113821.png

fastjson用的我淌口水

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值