Java 创建对象与读取Json

Java 创建对象与读取Json,java,android,json,object,Java,Android,Json,Object,我正在开发一个Android应用程序。应用程序以JSON字符串(大学和学生列表的名称)的形式获取数据,并根据数据操作应用程序 什么是更好的方法 创建一个新对象并将JSON字符串解析到其中,然后使用该对象,或者 保留JSON字符串,只要在需要从字符串中获取信息时使用JSONObject即可 还是其他方式 如果我正在使用新对象,我如何与应用程序中的其他活动传输(或共享)该对象? 我知道,对于字符串,我们可以使用对象 我建议使用, 因为它很快就会忘恩负义。 您可以在这里找到代码示例: 备注:Ja

我正在开发一个Android应用程序。应用程序以JSON字符串(大学和学生列表的名称)的形式获取数据,并根据数据操作应用程序

什么是更好的方法

  • 创建一个新对象并将JSON字符串解析到其中,然后使用该对象,或者
  • 保留JSON字符串,只要在需要从字符串中获取信息时使用JSONObject即可
  • 还是其他方式
如果我正在使用新对象,我如何与应用程序中的其他活动传输(或共享)该对象? 我知道,对于字符串,我们可以使用对象 我建议使用, 因为它很快就会忘恩负义。
您可以在这里找到代码示例:


备注:Jackson不是这种方法的唯一库>

我建议解析字符串(或使用库为您完成此操作!)并填充对象。通过这种方式,模型对象可以控制数据及其与其他对象共享的方式,并使用内部数据结构优化使用。如果您坚持使用JSON字符串,那么最终会对其进行多次解析以提取数据


但是,您决定跨活动共享对象/字符串不应影响您对数据建模方式的决定。在任何情况下,您都可能在活动中传递它。

我几乎总是将JsonObject解析为特定的对象,例如class University

这样做的一个好处是,您可以很好地将其放入集合中。例如HashMaps、Set或just straight List。当将其作为JsonObject处理时,您将无法轻松地使用它

如果对象继承Comparable,则可以对其进行排序,并可以定义equals/toString/hashCode


还有许多其他好处,但我认为您会发现在真实的数据结构中保存数据将给您带来最大的好处

我建议您也使用对象

您可以使用Gson库在json字符串和对象之间进行任何转换。它非常非常容易使用


要在其他活动之间传输数据,您可以使对象实现可序列化的接口,通过这种方式,您可以使用
.putExtra()
并将其向前传递。

我可以将对象(比如大学)传递给另一个活动吗?您可以-这并不像人们希望的那么简单,但也不太糟糕: