首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSONObject 和 JsonObject 的区别

JSONObject 和 JsonObject 的区别

作者头像
PhoenixZheng
发布2018-08-07 16:06:45
5.8K0
发布2018-08-07 16:06:45
举报

做Java开发经常要用Json来做数据的格式化解析,虽然在Android平台上我们习惯的使用 JSONObject, 但不知道你有没有这样的疑问,我们在import 包的时候有时会有两个选项,一个是 JSONObject,一个是JsonObject,这两个有什么区别呢。

包不同

JSONObject和JsonObject不只是名字的不同,虽然它们在功能上是一样的,但是在细节上有些不同。 JSONObject是属于 org.json.JSONOBject包, 而 JsonObject 属于 com.google.gson.JsonObject包, 在Android上,JSONOBject是原生类,不需要添加依赖包,而JSONObject则需要添加gson依赖,所以在有用gson做解析的项目上有时候可能会引错包。

保存方式不同

JSONObject用HashMap保存键值对, JsonObject用 LInkedTreeMap 保存键值对。

对空值处理方式不同

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

toString结果不同

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Android每日一讲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 包不同
  • 保存方式不同
  • 对空值处理方式不同
  • toString结果不同
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档