【问题标题】:How to write and read contents containing complex json data?如何读写包含复杂json数据的内容?
【发布时间】:2014-12-17 05:13:30
【问题描述】:

朋友:

我在 Android 上从远程服务器收到如下响应:

{
"items": {
    "persons": [
        {
            "id": "200120",
            "name": "Bill"
        },
        {
            "id": "200121",
            "name": "Jim"
        }
    ],
    "tasks": [
        {
            "id": "001",
            "name": "Fetch ten books",
            "deadline": "5:30 p.m.",
            "scores": "10"
        },
        {
            "id": "002",
            "name": "Fetch thirty books",
            "deadline": "5:30 p.m.",
            "scores": "30"
        }
    ],
    "intro": "This is a funny game."
},
"otherObj": []
}

我想把它保存到手机上。我认为将其保存到数据库中不是一个好的选择。但是,如果将响应放在SharedPreferences 文件中,它的读取速度不会很快。有没有其他办法?

【问题讨论】:

    标签: android json sharedpreferences


    【解决方案1】:

    无需将此数据保存到数据库中,因为这些值是动态的,并且会不时更改。

    在您的 Activity 中,调用 API 并获取 JSON 作为响应,然后解析此 JSON 并将其显示在设备上。

    要将其存储在设备上,您也可以使用 Singleton 类。

    JSON 解析器参考http://www.tutorialspoint.com/android/android_json_parser.htm

    【讨论】:

    • 感谢您的回答@VipSha。正如你所说,如果我想要一个人的名字,例如“Bill”,我怎样才能像singletonInstance.get(id)get 一样轻松快速地获得它,而get 不需要知道整个人的信息?
    • 这完全取决于您如何将数据存储到单例中。使用两个变量(Id、Name)创建一个 getter setter 类“Person”,并在单例中创建一个“Person”数组并将数据存储到该数组中。
    • 如何存储“Person”的数组?文件?有没有好办法遍历文件?
    • 没有。不在文件中。存储为“Persons[]”数组。该数组的每个元素都将存储 ID 和 NAME。在应用启动时调用API,然后将所有数据存储在单例中,并快速流畅地访问数据。
    • 但是我们需要持久化数据。
    【解决方案2】:

    您可以先将数据保存到对象中,最后保存到对象数组中,然后保存到数据库。(如果您的数据是动态的,最好只处理对象而不是数据库)

    要保存到数据库,您可以使用

    db.beginTransaction();
    for(object : ObjectArray){
       db.dboperation();
    }
    db.setTransactionSuccessful();
    db.endTransaction();
    

    【讨论】:

      猜你喜欢
      • 2020-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多