2012-02-03 110 views
0

我有以下代碼:解析JSON在Javascript

var addressInfo = []; 
for(var x in address_components_root){ 
    addressInfo.push(address_components_root[x].long_name+"|||"+address_components_root[x].types[0]); 
} 


for(var d in addressInfo) { 
    addressI = addressInfo[d].split("|||"); 
    if (addressI[1]=="street_number") { 
     window.alert("street"); 
    } 
} 

address_components_root是如在http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false

如何將分析此JSON正確像例如使用eval所以就不會發現一個JSON編碼的響應;是否需要手動分配所有數據?

+0

JSON = Javascript Object Notation – 2012-02-03 12:20:38

+0

@Sandro:你想說什麼? – 2012-02-03 12:23:36

+0

我只是想指出。它接近JavaScript。 – 2012-02-03 14:05:04

回答

3

在現代瀏覽器中,您可以使用JSON.parse([json string]);。在較舊的瀏覽器中,您需要一個JSON庫:請參閱this page - 使用json2.js文件。

+0

好吧,我收到錯誤:'未捕獲的TypeError:對象函數json_decode(str_json)' - 這是因爲我從谷歌獲得的數據已經是一個對象?對不起,這裏有一個JSON noob的位 – rickyduck 2012-02-03 12:48:23

+0

它在這裏與你提供的鏈接一起工作。請參閱http://jsfiddle.net/hE8xf/瞭解正確的語法。 'json_decode'中有什麼? – KooiInc 2012-02-03 13:03:27

+0

我的不好,是使用Google API。已經返回一個JSON對象。真是個蠢才。我在腳本的服務器端版本上使用了相同的函數,該腳本從REST api獲取數據,然後從JS api中獲取數據。 – rickyduck 2012-02-03 15:42:42