JSON.parse没有解析完整的JSON字符串

时间:2017-06-08 12:40:49

标签: javascript json cordova local

我遇到了这个问题,其中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));
下面是

的屏幕截图:

The output in the console

我正在阅读以下代码中显示的文件:

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

}

任何人都可以告诉我这里有什么问题。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

很难说,因为你只是以截图的形式呈现数据,而不是[mcve],但看起来你的数据包含:

逗号运算符:

  

计算每个操作数(从左到右)并返回最后一个操作数的值。

所以你最终会得到一件物品是很自然的。

如果您想要多个项目,请将它们放在一个数组中。