我遇到了这个问题,其中json.parse行为奇怪。 我正在从本地存储中读取json,然后将其保存到cordova中的localstorage,但是当我尝试解析它并在控制台中显示其内容时,它只显示一个元素。
以下是我的代码。
console.log("about to display news:
" +localStorage.getItem("getNewsLastUpdated"));
var cacheData = JSON.parse(JSON.stringify(eval("(" +
localStorage.getItem(NewsCacheLocalStorage) + ")")));
console.log("CacheData: " + JSON.stringify(cacheData));
下面是的屏幕截图:
我正在阅读以下代码中显示的文件:
readCache = function (fs,filename,NewsCacheLocalStorage) {
fs.root.getFile(filename, {}, function(fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
console.log("inside file read");
reader.onloadend = function(e) {
localStorage.setItem(NewsCacheLocalStorage, this.result);
console.log("read onloadend: " +
localStorage.getItem(NewsCacheLocalStorage) );
}
reader.readAsText(file);
}, errorReadCache);
}, errorReadCache);
}
任何人都可以告诉我这里有什么问题。
提前谢谢。
答案 0 :(得分:0)
很难说,因为你只是以截图的形式呈现数据,而不是[mcve],但看起来你的数据包含:
逗号运算符:
计算每个操作数(从左到右)并返回最后一个操作数的值。
所以你最终会得到一件物品是很自然的。
如果您想要多个项目,请将它们放在一个数组中。