与Gson库的比较

mfuanj7w  于 2022-11-23  发布在  其他
关注(0)|答案(3)|浏览(150)

这两门课有什么区别?
如果有人使用Gson库,使用**com.google.json.JsonObject是否优于org.json.JSONObject**?
有人能列出这两个选择的利弊吗?

hl0ma9xz

hl0ma9xz1#

主要区别如下:
1)GSON可以使用Object定义直接创建所需类型的对象,JSONObject需要手动解析。
2)json是一个简单的树型API,它最大的缺点是在解析之前需要将整个JSON文档加载到一个字符串中,对于大的JSON文档来说,这可能效率很低。
3)到目前为止,org.json实现的最大弱点是JSONException,只是在JSON的所有内容周围放置一个try/catch块并不方便。
4)Gson是Android上解析JSON的最佳API,它有一个非常小的二进制大小(不到200 KiB),可以快速进行数据绑定,并且有一个简单易用的API。
5)GSON和Jackson是Java世界中最流行的JSON数据管理解决方案。

neskvpey

neskvpey2#

市场上有很多JSON实现,其中大部分都是开源的,每一种都有其特定的优缺点。

  • 谷歌GSON
  • Jackson
  • org.json等等
    Google GSONclick用于官方文档
  • 提供简单的toJson()和fromJson()方法将Java对象转换为JSON,反之亦然
  • 允许将预先存在的不可修改对象与JSON相互转换
  • 广泛支持Java泛型
  • 允许对象的自定义表示
  • 支持任意复杂的对象(具有深层继承层次结构和广泛使用的泛型类型)
    Jacksonclick为正式文件
  • 流API或增量解析/生成:将JSON内容作为离散事件读取和写入
  • 树模型:提供JSON文档的可变内存树表示
  • 数据系结:将JSON与POJO相互转换

一些比较博客请单击此处blogs1blog2
我个人使用GSON、Jackson和Simple JSON对序列化和反序列化进行了基准测试

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

qnakjoqk3#

我在真实的Pixel 3设备Android 11上使用456 Kb json文件做了实验。我需要从数据库创建一个备份文件。模型有3个具有一对多关系的对象:附注、物料、报警。

Note -> fields and List<Item>.
Item -> fields and List<Alarm>.
Alarm -> fields

Serialization result:
gson -> 75ms; org.json -> 63ms
gson -> 83ms; org.json -> 67ms
gson -> 73ms; org.json -> 62ms

正如你所看到的,默认的android org.json比GSON快。如果你有时间为你的模型创建Map,我建议使用默认的org.json。如果你想创建json比gson快,但比org.json更容易,尝试使用莫希或kotlinx-serialization。

相关问题