Вставьте данные Gson в Android Sqlite
Я звоню в веб-сервис, я получил данные в массиве []. Я хотел вставить эти данные в базу данных sqlite. У меня есть структура базы данных на сервере и sqlite, а также.
Начнем с модельного класса
public class RateList {
public int id;
public String Name;
public String description;
public String amount;
public String image;
}
Я использую залп, чтобы получить данные из веб-службы. Я получаю данные в желаемом формате ниже кода требуется только часть кода
public void onResponse(String response) {
Log.e("response",response);
RateList[] itemList;
itemList = new Gson().fromJson(response, RateList[].class);
helper.insertData(itemList);
}
Это ответ, который я получаю от веб-службы.
[
{
"id": "1",
"Name": "pendrive",
"description": "8 GB",
"amount": "350",
"image": "http://my_website_url/Demo/images/9.png"
},
{
"id": "2",
"Name": "headphone",
"description": "",
"amount": "4500",
"image": "http://my_website_url/Demo/images/1.png"
},
.
.
.
]
Сейчас пытаюсь вставить RateList[] itemList
эти данные Gson в базу данных, это мой код DbHelper.
public void insertData(RateList[] itemList) {
db = getWritableDatabase();
for (int i = 0; i < itemList.length; i++) {
ContentValues contentValues = new ContentValues();
contentValues.put("id", ""+itemList[i].id);
contentValues.put("Name", itemList[i].Name);
contentValues.put("description", itemList[i].description);
contentValues.put("amount", itemList[i].amount);
contentValues.put("image", itemList[i].image);
db.insert(tableName, null, contentValues);
}
}
Когда я отлаживаю свое приложение, contentValues показывает ключ = 0 и значение = 1; Я не знаю, где я сделал ошибку. Я искал в Интернете, но не было конкретного примера для этого.
2 ответа
В функции insertData попробуйте инициировать contentValues только один раз перед циклом for.
db = getWritableDatabase();
ContentValues contentValues = new ContentValues();
for (int i = 0; i < itemList.length; i++) {
...
db.insert(tableName, null, contentValues);
}
Код, кажется, в порядке, проверьте имена столбцов и таблицы. Также проверьте объект contentValue после назначения значений, если значения существуют в объекте contentValue