【问题标题】:Why won't my stringify parse in an "if" statement?为什么我的 stringify 不能在“if”语句中解析?
【发布时间】:2021-11-24 09:15:46
【问题描述】:
const friends = ["john","peter","bob"];
localStorage.setItem("friends", JSON.stringify(friends));

const values = JSON.parse(localStorage.getItem("friends"));
console.log(values[2]);
// console.log(values[1]);
// console.log(values[2]);

let fruits;
console.log(fruits);

if (localStorage.getItem('fruits')) {
 fruits = JSON.parse(localStorage.getItem('fruits'));
}
else {
 fruits = [];
}

console.log(fruits);
fruits.push("apple");
fruits.push("orange");
localStorage.setItem("fruits", JSON.stringify(fruits));

为什么第一个数组会在 chrome 中正常运行,我可以从 dev.tools 清楚地检查控制台和应用程序,但是当我尝试创建一个空数组并推送不同的值 fx“apple”和“orange”时,我不能.我的控制台说错误出现在“if”语句中,但我不明白为什么。有什么想法吗?

【问题讨论】:

  • "console 说错误在 "if" 语句中":错误信息到底是什么? localStorage.getItem('fruits') 返回的值是多少?可以打印出来分享一下吗?
  • 这里不知道怎么上传图片所以放到imgur中。 imgur.com/8XixftAimgur.com/4UszRIB
  • @c0d3r4ng0 您是否尝试在问题行之前打印localStorage.getItem('fruits') 的值,看起来json 的第二个字符是u,它应该是空格字符或引号.
  • VM4060:1 Uncaught SyntaxError: Uncaught token u in JSON at JSON.parse () at app.js:300 的位置 1
  • 我会加油的!

标签: javascript json local-storage stringify


【解决方案1】:

我相信答案就在引号中。 JSON 语法非常严格,需要使用双引号。将 if 语句中的所有单引号更改为双引号,看看是否可以解决您的问题。

【讨论】:

  • json 对引号很严格,但这段代码不是 json。这是javascript。
猜你喜欢
  • 1970-01-01
  • 2019-09-16
  • 2021-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
  • 1970-01-01
  • 2013-06-09
相关资源
最近更新 更多