gpt4 book ai didi

javascript - JSON.parse() 是否需要双引号?

转载 作者:可可西里 更新时间:2023-11-01 01:37:12 24 4
gpt4 key购买 nike

我使用的是 Firefox 3.5b4。

这会提醒 [object Object],[object Object]:

var jsonString = '[{"foo": "one", "bar": 1}, {"foo": "two", "bar": 2}]';
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);

这会警告一个空字符串,即 jsonObjects 是 null

var jsonString = "[{'foo': '1', 'bar': 2}, {'foo': '3', 'bar': 4}]";
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);

同样适用于未加引号的属性名称,即 {foo: '1', bar: 2}

这是怎么回事?我是否遗漏了一些明显的东西,或者是否有关于使用 JSON.parse 双引号和单引号的规则?所有三个版本均适用于 eval

最佳答案

JSON 标准要求使用双引号。

请记住,JSON 不仅仅是“写一个 JS 对象”。这是一种非常严格的语法,恰好也可以作为 JS 对象读取。并非每个 JS 有效语法都是有效的 JSON。事实上,您的示例并不是真正有效的 JSON,因为它是一个对象数组,而标准指定顶级构造必须是一个对象。

当然,大多数 JSON 解析器更灵活,允许非标准选项(如单引号);但不要依赖它。

关于javascript - JSON.parse() 是否需要双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/883243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com