gpt4 book ai didi

javascript - 为什么 JSON.parse 对引号如此挑剔?

转载 作者:行者123 更新时间:2023-12-03 09:15:30 26 4
gpt4 key购买 nike

基本上,我试图通过向 JSON.parse() 提供字符串来创建这样的对象:

a = {x:1} 
// -> Object {x: 1}

直觉上我尝试过:

a = JSON.parse('{x:1}')
// -> Uncaught SyntaxError: Unexpected token x

经过一番摆弄,我发现:

a = JSON.parse('{"x":1}')
// -> Object {x: 1}

但后来我不小心改变了语法,并引发了额外的困惑:

a = JSON.parse("{'x':1}")
//-> Uncaught SyntaxError: Unexpected token '
<小时/>

所以现在我正在寻找原因

  1. 必须引用属性名称
  2. 该实现接受单引号,但在双引号上失败

最佳答案

造成混淆的主要原因似乎是 JSON 和 JavaScript 对象之间的差异。

<小时/>

JSON(JavaScript 对象表示法)是一种数据格式,旨在允许以简单格式进行数据交换。这就是为什么只有一种有效语法的原因。它使解析变得更加容易。您可以在 JSON website 上找到更多信息.

关于 JSON 的一些注意事项:

  • 键必须用 "引起来
  • 值可以是字符串、数字、对象、数组、 bool 值或“null”
  • 字符串值必须用 "括起来
<小时/>

JavaScript objects另一方面与 JSON 相关(显然),但并不完全相同。有效的 JSON 也是有效的 JavaScript 对象。然而,反之则不然。

例如:

  • 键和值可以用 "' 引用
  • 键并不总是需要加引号
  • 值可以是函数或 JavaScript 对象

关于javascript - 为什么 JSON.parse 对引号如此挑剔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31963895/

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