JSON.parse使用嵌套对象解析JSON

时间:2013-04-14 21:35:59

标签: javascript json

我正在尝试使用在post请求的响应中收到的嵌套对象来解析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[0][0],但它返回了JSON([)中的单个字符。这是否表明JSON没有正确解析,或者这是预期的行为,我只是错误地引用?

1 个答案:

答案 0 :(得分:10)

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

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

var parsed = JSON.parse(resposneText);

var parsed2 = JSON.parse(parsed);

alert(parsed2.atco);

或者,或者你正在解析它,然后尝试从原始字符串中选择数据。这显然不起作用。