我正在尝试使用在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没有正确解析,或者这是预期的行为,我只是错误地引用?
答案 0 :(得分:10)
这意味着您的JSON正在进行双重编码。确保您只在服务器上对其进行一次编码。
作为证明,在解析之后,再次解析它。
var parsed = JSON.parse(resposneText);
var parsed2 = JSON.parse(parsed);
alert(parsed2.atco);
或者,或者你正在解析它,然后尝试从原始字符串中选择数据。这显然不起作用。