【问题标题】:How should I save the data from the json response in Android? [closed]我应该如何在 Android 中保存来自 json 响应的数据? [关闭]
【发布时间】:2016-01-19 05:58:34
【问题描述】:

假设我正在创建一个应用程序来使用他们的 API 浏览 reddit。我收到一个包含提交的 json 响应,我打算用它来填充列表视图。 我的问题是我应该如何保存这些数据?我应该创建一堆对象还是有更好的方法来保存它?我需要能够识别用户点击了哪个提交,以便他们可以查看完整的线程等。

【问题讨论】:

  • 我建议你使用SQLiteDatabase + ContentProvider + Loader。通过搜索这些关键字可以轻松找到更多信息。
  • 我会使用 Realm 进行这种原型设计。与 SQLite + ContentProvider + Loader 相比,它需要更少的精力来启动。他们对 JSON 也有很好的支持。访问他们的网站了解更多信息 - realm.io

标签: android json


【解决方案1】:

我使用GSON 将 json 对象反序列化为 java 对象。 Jackson 是另一个用于 java 的 json 解析器。使用 GSON:

  1. 在你的 build.gradlecompile 中添加 GSON 库'com.google.code.gson:gson:2.3.1'

  2. 创建与 json 对象匹配的 JAVA 模型对象。

  3. 致电new GsonBuilder().create().fromJson({json string}, {JAVA model}.class);

现在要保存它,这取决于您要将其保存到哪里。如果您可以通过 SharedPreferences 将其保存到磁盘,您可以随时将其序列化回 JSON 字符串/对象:

String json = new GsonBuilder().create().toJson(this);

【讨论】:

  • 因此,如果我需要将原始 JSON 响应存储在一个文件中,而不是 SharedPreferences 而是一个 JSON 文件,那么我需要将 json 响应映射到 Java 对象,然后需要序列化它们并像你一样获取一个字符串在一行中描述,然后将此响应字符串存储在 json 文件中,或者我只需要将通过 respose.body().toString 方法从改造中获得的 jsonresponse 存储到文件中。这两个会是相同的方法吗?
  • 是的,它们将合二为一。 response.body 是 json 作为字符串,可以反序列化为 java 对象(通过上述 GSON 库),然后可以序列化回 json 作为字符串。
  • @Json Grife,谢谢你的工作。
【解决方案2】:

使用一些库来为您处理反序列化。结帐改造/凌空。让生活变得更简单。

【讨论】:

    【解决方案3】:

    您从服务器获得的只是文本。因此,您可以将其全部保存到文本文件中。没有对象。没有序列化。你最好把时间花在其他地方。

    【讨论】:

      猜你喜欢
      • 2013-04-12
      • 2013-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-08
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      相关资源
      最近更新 更多