2012-02-03 109 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