Вставьте данные 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

Другие вопросы по тегам