[英]Ionic 2 and JSON Data Addition
我正在使用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并将其追加的最有效方法是什么? 对我来说,如果对象没有像数组这样的push方法,则.parse返回对象是没有意义的。
这是错误:
未捕获(承诺)运行时错误:TypeError:无法读取未定义的属性“ push” TypeError:无法读取未定义的属性“ push”
该错误的意思是,目前没有该密钥的记录。 因此,您将必须执行以下检查:
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));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.