码迷,mamicode.com
首页 > Web开发 > 详细

JSON字符串对象互转

时间:2020-01-17 13:21:08      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:sonar   字符串   obj   ram   相同   json对象   zed   parse   nts   

本次测试使用

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>

1、对象转JSON字符串

Order<String> order = new Order<>();
String s = JSON.toJSONString(order);

2、JSON字符串转对象

1)JSONObject jsonObject = JSONObject.parseObject(s);
2)Order<T> order1 = JSONObject.parseObject(s,new TypeReference<Order<T>>((Type)String.class){});
3)Order<String> order2 = JSONObject.parseObject(s,new TypeReference<Order<String>>(){});
(2)(3)效果相同可支持多层泛型,某些场景我们不知道具体泛型需要反射得到Type[]后使用(2)方法,使用参数时注意指定泛型T,花费很长时间才找到问题。若是集合使用JSONArray
Type[] types = method.getGenericParameterTypes();
ParameterizedType pt = (ParameterizedType)types[0];
Type type = pt.getActualTypeArguments()[0];
Order<T> order = JSONObject.parseObject(s, new TypeReference<Order<T>>(type){});

3、java对象转JSON对象

JSONObject jsonObject = (JSONObject) JSONObject.toJSON(order);
若是集合使用JSONArray

JSON字符串对象互转

标签:sonar   字符串   obj   ram   相同   json对象   zed   parse   nts   

原文地址:https://www.cnblogs.com/kaoli/p/12205107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!