如果 JSON 对象中有 space,则语法错误。如何逃脱space.?

Syntax error if there is a space in JSON object. How to escape space.?

有一个JSON如下图

callback({
    "response":{
       "docs":[
              {
               "A":"qwe",
               "B":"asd",
               "C":"zxc",
               "D":"mnb",
              }]
       "Mapped Site":[
              "qaw",123,
              "asd",123,
              "qwe",123
              ]
       },
      })

我正在尝试使用 Jquery ajax api 读取 JSON 数据,如下所示

$.ajax({
                    type: "GET",
                    url: "http://qqq.com/",
                    crossDomain: true,
                    jsonpCallback: 'callback',
                    contentType: "application/json; charset=utf-8",
                    dataType: "jsonp",
                    success: function (msg) {
                         sourcearr = $(msg.response.Mapped Site);
            sourcearr = $.map(sourcearr, function (el) { return el; });
            alert(sourcearr);
            }
         });

这让我在 firebug 中出现语法错误,因为 Mapped Site

中有一个 space

如何转义并读取数据?

使用方括号表示法 访问带空格的键 喜欢

msg.response["Mapped Site"]

如果数组有空格,您可以访问 json 键,例如从数组中获取。

msg.response["Mapped Site"]

您好,您的 json 格式不正确。这是正确的版本

callback({
"response":{
   "docs":[
          {
           "A":"qwe",
           "B":"asd",
           "C":"zxc",
           "D":"mnb"
          }],
   "Mapped Site":[
          "qaw",123,
          "asd",123,
          "qwe",123
          ]
   }
  })

我把这个"D":"mnb",改成了这个"D":"mnb"

我在"Mapped Site"前添加了一个逗号,并从倒数第二行删除了逗号。

您可以使用此站点 jsoneditoronline.org 来测试和显示 json。