gpt4 book ai didi

javascript - 为什么 JSON 只允许字符串作为键?

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

为什么 JSON 只允许 string 作为键值对?为什么不是其他类型,例如 nullnumberboolobjectarray ?考虑到 JSON 与 JavaScript 紧密相关,我可以从 JavaScript 规范(ECMA-262)中得出原因吗?我完全是 JavaScript 的新手,你能帮我指出一下吗。

最佳答案

JSON 格式有意基于 JavaScript 对象字面量语法和数组字面量语法的子集,并且 JavaScript 对象只能将字符串作为键 - 因此 JSON 键也是字符串。 (好的,您可以将数字用作 JavaScript 对象键,但实际上它们会转换为字符串。)

请注意,JSON 的要点在于它是数据的字符串表示形式,允许在不同环境的不同机器上运行的以不同语言编写的程序之间轻松交换。如果您想将对象用作键,那么该对象又必须以某种方式表示为用于传输的字符串,但是接收语言需要能够将对象用作键,这意味着您需要对于那些只会一团糟的语言,JSON 的有限子集。

"Considering JSON is a part of JavaScript"

不,不是。较新的浏览器提供了创建和解析 JSON 的方法,但它们并不是语言本身的一部分,除了 JSON 是一种字符串格式,而 JavaScript 可以处理字符串。 JSON 始终 是一种字符串表示 - 它必须被解析以创建一个在 JavaScript(或其他语言)中使用的对象,一旦发生这种情况,JavaScript(或其他语言)将生成的对象视为与任何其他对象。

(另请注意,JSON 的特定位根本不一定有任何键:它可能只是一个数组,如 '["one","two","three"]'.)

关于javascript - 为什么 JSON 只允许字符串作为键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9304528/

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