JSON, JSONObject, JsonObject

JSON是一个抽象类

JSONObject是一个继承自JSON的类

JSON,JSONObject 和 JsonObject 

1. JAR 包不同,对于可以调用的内置方法函数也不同

JSONObject属于 org.json.JSONObject包,

JsonObject 属于 com.google.gson.JsonObject包

2. 存储方式不同

JSONObject用HashMap保存键值对,

JsonObject用 LInkedTreeMap 保存键值对。

对空值处理方式不同

如果要添加一个null值,两者在存储和获取上有区别。 JSONObject: 添加 value 为null,这个键值对会被删掉 JsonObject: 添加 value 为null, 可以正常添加 这会导致获取数据的时候也有区别。 JSONObject会获取不到这个键值对,但是 JsonObject则会获取到 null的数据。

toString结果不同

因为JSONObject是用HashMap来保存数据的,所以对它toString的时候可能出现顺序和保存顺序不一致的情况。 这一般没什么问题,但是如果要把内容作为数据校验的话可能不行,比如用md5计算,可能会出现每次的校验值都不同。

Json, String, List, Map, JavaBean之间转换

1.将 List 对象转换为 Json 格式的String

 List<User> users= findAllUser();

 String str = JSONObject.toJSONString(users);

2.将 Map 对象转换为 JsonObject

 Map<String,Object> map = new HashMap();
        map.put("name","zhangsan");
        map.put("age","15");
JSONObject jsonObject = new JSONObject(map);

3.将Map 转换为 Json 格式的String 字符串

  String jsonStr = JSON.toJSONString(map);

4.将 json 格式的String 字符串转换为 Map 

 String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";

 JSONObject  jsonObject = JSONObject.parseObject(jsonStr);

 Map<String,Object> map = jsonObject;

5. 将 json 格式的字符串转换为 JsonObject

String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";

JSONObject jsonObject = JSON.parseObject(jsonStr);

6. 将 json字符串转换为 Java对象

 String jsonStr = "{\"name\":\"zhangsan\",\"email\":\"15\"}";
        
 User user = JSON.parseObject(jsonStr,User.class);

7. 将 json 字符串转换为 JSONArray 数组

 String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";
        
        JSONArray array = JSON.parseArray(jsonStr);

        for(int i=0;i<array.size();i++){
            System.out.println(array.get(i));
        }

8. 将Java 对象转换为 json 字符串

 User user = new User(11,"wangwu","wangwu@163.com","上海");
        
 String str = JSON.toJSONString(user);

9. 将json 字符串转换为 Java 实体集合

 String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";

 List<User> list = JSON.parseArray(jsonStr,User.class);

10. 将 java 对象转换为 JsonObject

  User user = new User(11,"wangwu","wangwu@163.com","上海");

  JSONObject jsonObject = (JSONObject) JSON.toJSON(user);

JSON.parseObject与JSONObject.parseObject的区别&JSONObject和JSONArray的区别_艾艾猫dori的博客-CSDN博客_jsonobject.parseobject

java中解析json时parse()和parseObject()和parseArray()的区别 - 百度文库

JSONObject、 JsonObject、阿里fastJson、谷歌gson区别 - byebai95 - 博客园

JSONObject 和 JsonObject 的区别 - 腾讯云开发者社区-腾讯云

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值