JSON.parse 未解析完整 JSON 字符串
JSON.parse is not parsing complete JSON String
我遇到了 json.parse 行为异常的问题。
我正在从本地存储中读取 json,然后将其保存到 cordova 中的本地存储中,但是当我尝试解析它并在控制台中显示其内容时,它只显示一个元素。
下面是我的代码。
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],但看起来您的数据包括:
- 对象字面量
- 一个comma operator
- 另一个对象文字
逗号运算符:
evaluates each of its operands (from left to right) and returns the value of the last operand.
所以你最终会得到一个项目是很自然的。
如果您想要多个项目,请将它们放在一个数组中。
我遇到了 json.parse 行为异常的问题。 我正在从本地存储中读取 json,然后将其保存到 cordova 中的本地存储中,但是当我尝试解析它并在控制台中显示其内容时,它只显示一个元素。
下面是我的代码。
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],但看起来您的数据包括:
- 对象字面量
- 一个comma operator
- 另一个对象文字
逗号运算符:
evaluates each of its operands (from left to right) and returns the value of the last operand.
所以你最终会得到一个项目是很自然的。
如果您想要多个项目,请将它们放在一个数组中。