Ionic 2和JSON Data Addition

时间:2017-01-17 05:18:11

标签: javascript json ionic2

我正在使用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返回一个对象是没有意义的。

这是错误:

  

运行时错误未捕获(在承诺中):TypeError:无法读取属性   '推'未定义的TypeError:无法读取属性' push'的   未定义

1 个答案:

答案 0 :(得分:0)

此错误的含义是,此时此键没有记录。 所以,你必须做这样的检查:

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));
});