JSONObject 和 JsonObject 的区别

做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计算,可能会出现每次的校验值都不同。

原文发布于微信公众号 - Android每日一讲(gh_f053f29083b9)

原文发表时间:2018-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博客

ExtJs四(ExtJs MVC登录窗口的调试)

继上一节中实现了验证码http://www.cnblogs.com/aehyok/archive/2013/04/19/3030212.html,现在我们可以进...

14720
来自专栏有趣的django

Django rest framework(7)----分页

第一种分页  PageNumberPagination 基本使用 (1)urls.py urlpatterns = [ re_path('(?P<ve...

66270
来自专栏Porschev[钟慰]的专栏

asp.net生成静态页

做个生成静态页示例: 采用替换模版页的形式生成静态页 第一步:新建项目,创建一个简单模版页:TemplatePage.htm <!DOCTYPE html PU...

23360
来自专栏程序你好

ASP.NET Core RESTful Web服务开发教程

在本文中,我将逐步解释如何在ASP.NET Core中开发基于RESTful的Web服务应用程序。ASP.NET Core是微软最新发布的技术,比之前的WCF和...

78260
来自专栏开发 & 算法杂谈

Hiredis源码阅读(二)

上一篇介绍了Hiredis中的同步api以及回复解析api,这里紧接着介绍异步api。异步api需要与事件库(libevent、libev、ae一起工作)。

47150
来自专栏木宛城主

ASP.NET那点不为人知的事(一)

我们上网时,在浏览器地址输入网址,按下回车,一张网页就呈现在我们眼前。这究竟发生了什么?对于一名优秀的Programmer来说,我想有必要一下熟悉浏览器---...

40680
来自专栏码农阿宇

ASP.NET Core轻松入门Bind读取配置文件到C#实例

首先新建一个ASP.NET Core空项目,命名为BindReader ? 然后 向项目中添加一个名为appsettings.json的json文件,为什么叫a...

60950
来自专栏JackeyGao的博客

Golang bongo 简单示例

16620
来自专栏大内老A

在ASP.NET MVC中通过URL路由实现对多语言的支持

对于一个需要支持多语言的Web应用,一个很常见的使用方式就是通过请求地址来控制界面呈现所基于的语言文化,比如我们在表示请求地址的URL中将上语言文化代码(比如e...

23360
来自专栏GreenLeaves

Web API系列之三 基本功能实现

Web API系列之二讲解了如何搭建一个WebApi的基架,本文主要在其基础之上实现基本的功能.下面开始逐步操作: 一、配置WebApi的路由-用于配置外部如何...

21550

扫码关注云+社区

领取腾讯云代金券