【发布时间】:2011-11-14 12:43:10
【问题描述】:
我无法理解 JSONObject 和 GSON 在 Android 中解析 JSON 字符串的区别。
谁能解释一下?
【问题讨论】:
我无法理解 JSONObject 和 GSON 在 Android 中解析 JSON 字符串的区别。
谁能解释一下?
【问题讨论】:
GSON 可以使用 Object 定义直接创建所需类型的对象。 JSONObject 需要手动解析。这是主要区别。
【讨论】:
正如其他人所说,GSON 应该使映射JSON 到POJO 变得更加容易,但是,最新的GSON 版本(如我所写,2.2.2)与最新的 Android API 17 存在严重问题(Android 4.2)。
查看此信息以获取信息:http://code.google.com/p/google-gson/issues/detail?id=496
如果您现在正在做一个新项目,并希望它与 Android 4.2 兼容,请使用较旧的 GSON(1.7.1 与 Android 4.2 兼容,但速度较慢),或者寻找其他解决方案。
【讨论】:
蒂姆说的也对,
Gson 是 Android 上用于 JSON 解析的最佳 API。它有一个非常小的 二进制大小(小于 200 KiB),进行快速数据绑定,并且有一个简单的 易于使用的 API。 Android 内置的 JSON 库也不错。你 如果您没有做太多 JSON 并且不需要,应该使用它们 数据绑定。
【讨论】:
Android 上有两个 JSON API:
org.json 是一个简单的树形 API。它最大的弱点是它 要求您先将整个 JSON 文档加载到字符串中 可以解析它。对于大型 JSON 文档,这可能效率低下。 http://developer.android.com/reference/org/json/package-summary.html
android.util.JsonReader/JsonWriter 是低级流式 API。 它们很有效,但不做数据绑定,所以你需要写一些 样板代码来使用这些。它们仅适用于 Android 3+。 对于早期版本的 Android,相同的 API 可独立使用 在 Gson 的流包中。 http://developer.android.com/reference/android/util/JsonReader.html
Gson 的 JsonReader 和 JsonWriter 是从 Android 的 JsonReader 派生的 和 JsonWriter。我从字面上将它们从Android复制并粘贴到 Gson 有一天,并在我优化一个或 其他。
【讨论】:
org.json 实现的最大弱点是JSONException。 不方便必须在所有 JSON 内容周围放置一个 try/catch 块。