Добавление данных Ionic 2 и JSON

Я работаю с Ionic 2 Storage для сохранения данных формы. Я сохраняю данные следующим образом:

this.storage.set(key, JSON.stringify(formData));

И я получаю и пытаюсь обновить данные, как это:

this.getReport(key).then((report) => {
  var objReport = JSON.parse(report);
  objReport.push(data); //this is the problem
  this.storage.set(pk, JSON.stringify(objReport));
});

getReport именно это:

getReport(key) {
  return this.storage.get(key);
}

Так что я это знаю .push предназначен для массивов, а не объектов, но я не думаю, что это эффективно делать все эти преобразования, потому что я имею дело с большими объектами.

Мой вопрос: какой наиболее эффективный способ извлечь json из хранилища и добавить к нему? Для меня это не имеет смысла .parse возвращает объект, если объекты не имеют push-метод, как массивы.

Вот ошибка:

Ошибка выполнения Uncought( in promise): TypeError: не удается прочитать свойство
‘push ‘of undefined TypeError: не удается прочитать свойство’ push ‘ of
не определено

1 ответ

  1. эта ошибка означает, что в данный момент нет записей для этого ключа.
    Таким образом, вы должны были бы сделать проверку, как это :

    this.getReport(key).then((report) => {
      var objReport = [];//initialise empty Array
      if(report){ //if there is a record in that key location
         objReport = JSON.parse(report); //parse the record & overwrite objReport
      }
      objReport.push(data); //Now this push will happen regardless of report or not
      this.storage.set(pk, JSON.stringify(objReport));
    });