【问题标题】:Is there any difference in JSON Key when using single quote and double quote?使用单引号和双引号时,JSON Key 有什么区别吗?
【发布时间】:2014-07-06 04:57:24
【问题描述】:

我在一个在线JS运行平台上跑了两段javascript代码:Website Link

pets = '{'pet_names':[{"name":"jack"},{"name":"john"},{"name":"joe"}]}';
var arr = JSON.parse(pets);
alert(arr.pet_names[1].name);

带有双引号(“pet_names”)的代码可以,但带有单引号('pet_names')的代码会提示错误:“Unexpected identifier”

pets = '{"pet_names":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}';
var arr = JSON.parse(pets);
alert(arr.pet_names[1].name);

那么,为什么会发生呢?

【问题讨论】:

    标签: javascript json double-quotes


    【解决方案1】:

    在 JSON 中,只有双引号有效。

    你可以在JSON.org找到标准

    值可以是双引号中的字符串、数字、true或 false 或 null,或对象或数组。这些结构可以 嵌套。

    换句话说,单引号中没有字符串。

    【讨论】:

      【解决方案2】:

      第一个不起作用,因为您在尝试定义字符串文字时遇到语法错误
      你可能想要

      pets = '{\'pet_names\':[{"name":"jack"},{"name":"john"},{"name":"joe"}]}';
      

      注意引号被转义了。

      现在,如果您在 json 解析器中使用该字符串,您仍然会收到错误(SyntaxError: Unexpected token '),因为 JSON 中的键必须用双引号定义,使用单引号对于定义单独的 JavaScript 对象文字有效来自 JSON。

      【讨论】:

        猜你喜欢
        • 2018-06-19
        • 2014-05-13
        • 2017-05-14
        • 2010-12-31
        • 2010-10-30
        • 1970-01-01
        • 2010-10-01
        相关资源
        最近更新 更多