我不知道我在 json.parse 中遇到的上述语法错误是什么问题,我正在使用如下代码
Storage.prototype.setObject = function(key, value) {
this.setItem(key, JSON.stringify(value));
}
Storage.prototype.getObject = function(key) {
var value = this.getItem(key);
return value && JSON.parse(value);
}
function main() {
var data = {
"a":"something1",
"b":"something2"
};
sessionStorage.setObject('data',data);
var newData = sessionStorage.getObject('data');
console.log(newData);
}
在调用 getObject('data') 时,我在“firefox”中收到错误,而在 chrome 中“没有错误”,请帮助我找出问题,我分别运行上面的示例代码,它对我来说工作正常,但在我的项目中我在做同样的事情会导致错误。
最佳答案
我在 Firefox 或 Chrome 中都没有收到任何错误。但是,您可以通过将 try/catch
block 添加到 getObject
方法
Storage.prototype.getObject = function(key) {
var value = this.getItem(key);
if (value) {
try {
value = JSON.parse(value);
} catch (err) {
console.error("Error parsing stored data: " + err);
}
}
}
关于javascript - syntaxerror json.parse json 数据第 1 行第 1 列的意外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23835793/