JSON and javascript objects

JSON and javascript objects

本文关键字:objects javascript and JSON      更新时间:2023-09-26
var foo = { "a": 1, "b": true, c: [1, true, "2"] };

如果我在这里错了,请纠正我,但据我所知,这是一个有效的 json 对象。但它也是一个JavaScript对象。

JSON 对象是否基于 JavaScript 语言?还是相反?

谢谢

JSON 对象是否基于 JavaScript 语言?

是的。

请参阅规格:

JavaScript 对象表示法 (JSON( 是一种轻量级、基于文本、独立于语言的数据交换格式。 它源自 ECMAScript 编程语言标准。

请注意,ECMAScript 是 JavaScript 的标准化版本。

"如果我在这里错了,请纠正我,但据我所知,这是一个有效的 json 对象">

不。

"但它也是一个JavaScript对象。

是的。

更新:我的原始答案在下面继续,但我错过了一个重要的语法错误,@badunk

字符串

{ "a": 1, "b": true, c: [1, true, "2"] }

是 JSON。JSON 只是关于符号 - 关于哪些符号构成有效语法,以及它们在处理时的含义。

您的代码:

var foo = { "a": 1, "b": true, c: [1, true, "2"] };

..是一段 JavaScript。当解析和处理时,赋值右侧的部分称为 javascript 对象文字。也就是说,一段表示文字对象的 JavaScript。但是因为它实际上是一个对象,所以它不再是符号 - 它被处理成运行时数据结构。

当您谈论数据交换时,术语JSON很有用,例如通过HTTP。如果 HTTP 响应通过如下刺痛:

{ "a": 1, "b": true, c: [1, true, "2"] }

它是有效的 JSON。如果这将被解释,它将产生一个javascript对象。

来自JSON网站

JSON(JavaScript Object Notation(是一种轻量级的数据交换格式。人类很容易读写。机器很容易解析和生成。它基于 JavaScript 编程语言的一个子集。

因此,您的问题的答案将是肯定的。

有人可能会争辩说没有"JSON 对象"这样的东西(http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/(。

上面的代码实际上是一个对象文字。另一方面,JSON 只是一个对象的字符串表示形式,即它是一个序列化。

正如

@Roland指出的那样,语句本身是一个javascript表达式,而不是JSON。 但是,忽略这一点,并评估以下内容是否为 JSON:

{ "a": 1, "b": true, c: [1, true, "2"] }

我不同意这里的其他答案,这不是有效的 JSON。 严格来说,属性必须括在引号中。 在此处查看 SO 帖子。 这是正确的 JSON:

{ "a": 1, "b": true, "c": [1, true, "2"] }