Javascript JSON.parse未分析完整的JSON字符串

Javascript JSON.parse未分析完整的JSON字符串,javascript,json,cordova,local,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("(" + lo

我遇到了这样一个问题,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);
}

谁能告诉我这里有什么问题吗


提前谢谢。

很难说,因为您仅以屏幕截图的形式而不是[mcve]呈现了数据,但看起来您的数据包括:

  • 对象文字
  • A
  • 另一个对象文本
逗号运算符:

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

因此,很自然,你最终会得到一件物品


如果您需要多个项目,请将它们放入一个数组。

为什么要使用eval?为什么使用字符串而不是解析?为什么使用JSON.stringify和JSON.parse?谢谢,昆汀。这个问题真的解决了。我把我所有的内容都放到数组中,现在它给了我所有的值。