10

我正在尝试使用在发布请求的响应中收到的嵌套对象解析 JSON 字符串。运行后JSON.parse(responseText),结果格式如下:

[{
  "atco":"43000156407",
  "location":{
    "longitude":"-1.7876500000000000",
    "latitude":"52.4147200000000000","
    timestamp":"2013-03-19 11:30:00"
   },
  "name":"Solihull Station Interchange",
  "road":"STATION APPROACH",
  "direction":"NA",
  "locality":"Solihull",
  "town":"Solihull"}, ...

我以为我可以使用以下示例提取值,但我得到的只是未定义的。

var atco = json[0].atco;

我也尝试过,但这会从 JSON ( )json[0][0]返回一个单独的字符。[这是否表明 JSON 没有正确解析,或者这是预期的行为,我只是不正确地引用?

4

1 回答 1

12

这意味着您的 JSON 被双重编码。确保只在服务器上对其进行一次编码。

作为证据,在你解析它之后,再次解析它。

var parsed = JSON.parse(resposneText);

var parsed2 = JSON.parse(parsed);

alert(parsed2.atco);

要么,要么您正在解析它,然后尝试从原始字符串中选择数据。这显然行不通。

于 2013-04-14T21:40:45.480 回答