如何在sqlite数据库android中存储更新的JSON响应?

时间:2016-10-05 13:38:46

标签: android json sqlite android-sqlite

所以在这里我得到一个Json响应,其中包含表和相应数据的列表。我已经手动创建了包含所有表的main.sqlite数据库,现在我想将响应数据存储在各自的表中。我正在尝试找出实现它的优化方法,因为每24小时后我会得到更新的响应,我会有再次存储。请帮助我。提前谢谢。

以下是我的JSON响应示例

{
"main": {
    "tableOne": [{
        "colOne": 1,
        "colTwo": "two"
    }, {
        "colOne": 3,
        "colTwo": "three"
    }],
    "tableTwo": [{
        "colOne": 1,
        "colTwo": "two"
    }, {
        "colOne": 1,
        "colTwo": "two"
    }]
}

}

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

void AddJsonToDB(String jsonString, SQLiteDatabase db) throws Exception{

    JSONObject jsonObj = new JSONObject(jsonString);

    JSONArray jsonArray = jsonObj.getJSONArray("tableOne");

    if (jsonArray.length() == 0) return 0;

    for (int i = 0; i < jsonArray.length(); i++) {

        ContentValues args = new ContentValues();

        args.put("colOne", jsonobject.getInt("colOne"));
        args.put("colTwo", jsonobject.getString("colTwo"));
        db.insert("tableOne", null, args);

    }


    jsonArray = jsonObj.getJSONArray("tableTwo");

    if (jsonArray.length() == 0) return 0;

    for (int i = 0; i < jsonArray.length(); i++) {

        ContentValues args = new ContentValues();

        args.put("colOne", jsonobject.getInt("colOne"));
        args.put("colTwo", jsonobject.getString("colTwo"));
        db.insert("tableTwo", null, args);

    }

}