这两个班级有什么区别?
如果有人使用Gson库,最好使用 com.google.json.JsonObject
而不是 org.json.JSONObject
?
有人能列出这两个选择的优缺点吗?
答案 0 :(得分:10)
市场上有许多JSON实现,其中大多数都是开源的。每个人都有其特定的优点和缺点。
Google GSON click正式文件
杰克逊 click正式文件
我个人使用GSON vs Jackson vs Simple JSON
完成序列化和反序列化的基准测试答案 1 :(得分:6)
以下是主要区别:
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数据的最流行的解决方案。
答案 2 :(得分:0)
我在真实的 Pixel 3 设备 Android 11 上对 456 Kb json 文件进行了实验。 我需要从数据库创建一个备份文件。模型有 3 个具有一对多关系的对象:Note、Item、Alarm。
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 快。 如果您有时间为您的模型创建映射,我建议您使用默认的 org.json。 如果您想创建 json 比 gson 更快,但比 org.json 更容易,请尝试使用 moshi 或 kotlinx 序列化。