2013-04-14 203 views
8

我試圖解析一個JSON字符串與嵌入的對象收到一個post請求的響應。運行JSON.parse(responseText)後,結果是按以下格式:JSON.parse解析嵌套對象的JSON

[{ 
    "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

你必須引用你如何解析它。如果JSON真的如圖所示,那麼'json [0] .atco'是訪問數組中第一個入口的'atco'屬性的正確方法。這讓我們猜測發生了什麼問題,這對任何人都沒有用。 :-) –

+0

請寫出compelete json腳本。 – ncm

+0

如果json指向那個對象,就像你寫的那樣,它會工作:http://jsfiddle.net/XmchJ/還有其他的事情,我懷疑「我不是」是否想出了 –

回答

10

這意味着您的JSON正在被雙重編碼。確保你只在服務器上編碼一次。

作爲證明,在你解析它之後,再次解析它。

var parsed = JSON.parse(resposneText); 

var parsed2 = JSON.parse(parsed); 

alert(parsed2.atco); 

要麼,你分析它,但隨後試圖從原來的字符串選擇數據。這顯然不起作用。

+0

謝謝,這是在PHP腳本中被雙重編碼。 – Dannyboy1430

+0

@ Dannyboy1430:不客氣。 – 2013-04-14 21:50:30