#android #json #sqlite #android-sqlite
#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. Пожалуйста, покажите, что вы пробовали до сих пор
2. @cricket_007 Я создал все pojo таблиц, также написал код для класса DatabaseHelper, но я застрял, чтобы поместить эти данные в базу данных
3. Помогает ли это? guides.codepath.com/android /…
Ответ №1:
Вы можете попробовать что-то вроде этого:
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);
}
}