chr*_*ngs 217 json specifications standards-compliance
示例:以下代码是否对JSON规范有效?
{
precision: "zip"
}
Run Code Online (Sandbox Code Playgroud)
或者我应该总是使用以下语法?(如果是这样,为什么?)
{
"precision": "zip"
}
Run Code Online (Sandbox Code Playgroud)
我在JSON规范中没有真正发现这个问题.虽然他们在示例中使用了键周围的引号.
cob*_*bal 136
是的,你需要引号.这是为了使它更简单,并避免必须有另一个javascript保留关键字的转义方法,即{for:"foo"}.
Pat*_*and 131
使用字符串作为关键是正确的.以下是RFC 4627的摘录- 用于JavaScript对象表示法的应用程序/ json媒体类型(JSON)
2.2.对象
对象结构表示为围绕零个或多个名称/值对(或成员)的一对花括号. 名称是一个字符串.每个名称后面都有一个冒号,将名称与值分开.单个逗号将值与以下名称分隔开.对象中的名称应该是唯一的.
object = begin-object [ member *( value-separator member ) ] end-object
member = string name-separator value[...]
2.5.字符串
字符串的表示类似于C系列编程语言中使用的约定.字符串以引号开头和结尾.[...]
string = quotation-mark *char quotation-mark
quotation-mark = %x22 ; "
在这里阅读整个RFC .
Ceb*_*yre 13
从2.2开始.对象
对象结构表示为围绕零个或多个名称/值对(或成员)的一对花括号.名称是一个字符串.
从2.5.字符串
字符串以引号开头和结尾.
所以我会说根据标准:是的,你应该总是引用密钥(虽然一些解析器可能更宽容)
vas*_*vas 13
对于常规 JSON,必须引用 yes 键。但如果您有其他需要,请查看广泛使用的JSON5,之所以如此命名,是因为它是允许 ES5 语法的 JSON 超集,包括:
JSON5 参考实现(json5npm package)提供了一个JSON5对象,该对象具有与内置对象相同的参数和语义的parse方法。stringifyJSON
JSON5 于 2012 年启动,截至 2022 年,每周下载量超过 6500 万次,在 npm 上最依赖的软件包中排名前 0.1%,并已被 Chromium、Next.js、Babel 等主要项目采用、Retool、WebStorm 等等。MacOS 和 iOS 等 Apple 平台也原生支持它。
~ json5.org主页
| 归档时间: |
|
| 查看次数: |
69586 次 |
| 最近记录: |