【问题标题】:JSON and javascript objects [duplicate]JSON和javascript对象[重复]
【发布时间】:2012-08-22 19:52:06
【问题描述】:
var foo = { "a": 1, "b": true, c: [1, true, "2"] };

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

JSON 对象是基于 javascript 语言的吗?还是反过来?

谢谢

【问题讨论】:

标签: javascript json


【解决方案1】:

JSON 对象是基于 javascript 语言的吗?

是的。

the specification:

JavaScript Object Notation (JSON) 是一种轻量级、基于文本、与语言无关的数据交换格式。它源自 ECMAScript 编程语言标准。

请注意,ECMAScript 是 standardised version of JavaScript

【讨论】:

    【解决方案2】:

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

    没有。

    “但它也是一个 javascript 对象。”

    是的。

    更新:我的原始答案在下面继续,但我错过了一个重要的语法错误,@badunk 很有帮助地指出了这一点

    字符串

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

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

    您的代码:

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

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

    当您谈论数据交换(例如通过 HTTP)时,术语 JSON 很有用。如果 HTTP 响应传递了这样的字符串:

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

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

    【讨论】:

      【解决方案3】:

      来自JSON 网站

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

      所以你的问题的答案是肯定的。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          正如@Roland 所指出的,该语句本身是一个 javascript 表达式,而不是 JSON。然而,忽略这一点,并评估以下是否为 JSON:

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

          我不同意这里的其他答案,这不是有效的 JSON。严格来说,属性必须用引号括起来。请参阅 SO 帖子 here。这是正确的 JSON:

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

          【讨论】:

          • 你是对的。我错过了。
          猜你喜欢
          • 2014-01-15
          • 2017-07-10
          • 2016-06-22
          • 2016-03-05
          • 2015-12-16
          • 2015-01-02
          • 2016-09-02
          • 1970-01-01
          • 2017-03-27
          相关资源
          最近更新 更多