org.json.JSONObject vs Gson库JsonObject

iam*_*der 21 android json gson android-json

这两个班级有什么区别?

如果有人使用GSON库是它最好使用com.google.json.JsonObjectorg.json.JSONObject

任何人都可以列出这两种选择的优缺点吗?

小智 10

市场上有许多JSON实现,其中大多数都是开源的.每个人都有特定的优点和缺点.

  • 谷歌GSON
  • 杰克逊
  • org.json等

谷歌GSON 点击官方文件

  • 提供简单的toJson()和fromJson()方法将Java对象转换为JSON,反之亦然
  • 允许将预先存在的不可修改对象转换为JSON和从JSON转换
  • 广泛支持Java Generics
  • 允许对象的自定义表示
  • 支持任意复杂的对象(具有深层继承层次结构和泛型类型的广泛使用)

杰克逊 点击官方文件

  • 流API或增量解析/生成:将JSON内容读取和写入离散事件
  • 树模型:提供JSON文档的可变内存树表示
  • 数据绑定:将JSON转换为POJO和从POJO转换

一些比较博客点击这里blogs1,blog2

我个人使用GSON vs Jackson vs Simple JSON完成了序列化和反序列化的基准测试

  • 非常小的对象:Google gson比Jackson和Simple JSON执行速度更快
  • 大型对象:Google gson比Jackson和Simple JSON执行速度更快

  • 那么,就小对象和大对象的性能而言,Google gson是一个出色的库吗? (2认同)

小智 8

以下是主要区别:

1)GSON可以使用Object定义直接创建所需类型的对象.需要手动解析JSONObject.

2)org.json是一个简单的树式API.它最大的缺点是它需要您在解析之前将整个JSON文档加载到字符串中.对于大型JSON文档,这可能效率低下.

3)到目前为止,org.json实现的最大弱点是JSONException.在所有JSON内容周围放置一个try/catch块是不方便的.

4)Gson是Android上JSON解析的最佳API.它具有非常小的二进制大小(低于200 KiB),具有快速数据绑定,并且具有简单易用的API.

5)GSON和Jackson是用于管理Java世界中JSON数据的最流行的解决方案.

  • 对于 JSON 解析器来说,200KiB 以下一点也不小。在这方面,org.json 截至目前的最新版本为 65KiB,小了很多。 (3认同)