这两门课有什么区别?如果有人使用Gson库,使用**com.google.json.JsonObject是否优于org.json.JSONObject**?有人能列出这两个选择的利弊吗?
com.google.json.JsonObject
org.json.JSONObject
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数据管理解决方案。
neskvpey2#
市场上有很多JSON实现,其中大部分都是开源的,每一种都有其特定的优缺点。
一些比较博客请单击此处blogs1、blog2我个人使用GSON、Jackson和Simple JSON对序列化和反序列化进行了基准测试
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。
3条答案
按热度按时间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数据管理解决方案。
neskvpey2#
市场上有很多JSON实现,其中大部分都是开源的,每一种都有其特定的优缺点。
Google GSONclick用于官方文档
Jacksonclick为正式文件
一些比较博客请单击此处blogs1、blog2
我个人使用GSON、Jackson和Simple JSON对序列化和反序列化进行了基准测试
qnakjoqk3#
我在真实的Pixel 3设备Android 11上使用456 Kb json文件做了实验。我需要从数据库创建一个备份文件。模型有3个具有一对多关系的对象:附注、物料、报警。
正如你所看到的,默认的android org.json比GSON快。如果你有时间为你的模型创建Map,我建议使用默认的org.json。如果你想创建json比gson快,但比org.json更容易,尝试使用莫希或kotlinx-serialization。