我正在开发一个 Android 应用程序。应用程序以 JSON 字符串(大学名称和学生名单)的形式获取数据,并根据数据操作应用程序。
什么是更好的方法?
- 创建一个新对象并将 JSON 字符串解析到其中,然后使用该对象,或者
- 保留 JSON 字符串,只要我需要从字符串中获取信息就使用 JSONObject
- 还是有什么其他方式?
如果我正在使用新的对象,我如何将对象转移(或共享)到应用程序中的其他活动?我知道对于字符串我们可以使用putextra()
.
使用对象。
我建议使用Jackson library,因为它非常快速且易于集成。
你可以在这里找到代码示例:
http ://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/
PS:杰克逊不是这种方法的唯一图书馆>杰克逊与。格森
我建议解析字符串(或使用库为您执行此操作!)并填充对象。这样,您的模型对象可以控制数据以及如何与其他对象共享数据,并使用内部数据结构来优化使用。如果您坚持使用 JSON 字符串,您最终会多次解析它以提取数据。
但是,您决定在活动之间共享对象/字符串不应影响您对如何建模数据的决定。在任何情况下,您最终都可能会在活动中传递它。
我几乎总是将 JsonObject 解析成一个特定的对象,例如大学类。
这样做的一个好处是,您可以将它很好地放入集合中。例如 HashMaps、Set 或直接 List。将其作为 JsonObject 处理时,您将无法轻松使用它。
如果你的 Object 继承了 Comparable,你可以对它进行排序,并且可以定义 equals/toString/hashCode。
还有许多其他好处,但我认为您会发现将数据保存在真实的数据结构中会给您带来最大的好处
我建议你也使用对象。
您可以使用 Gson 库在 json 字符串和对象之间进行任何转换。它非常非常易于使用。http://code.google.com/p/google-gson/
要在其他活动之间传输数据,您可以使您的对象实现Serializable
接口,这样您就可以使用.putExtra()
并转发它。