我正在尝试使用数据api。我仍处于初步阶段,因此只需深入了解基本的管道。我找了一些研究来检查所涉及的变量,我发现我必须有一些服务器端脚本来处理json的跨域调用。基本上将它转换为jsonp。现在的问题是如何。我看了,但是没有真正看到符合我要求的方向。
这是在.json
中返回的apihttp://data.cityofnewyork.us/resource/xm9j-adfx.json
这是一个代码示例:
[ {
"consumption_gj_" : "83983",
"zip_code" : {
"needs_recoding" : false,
"longitude" : "-73.99688630375988",
"latitude" : "40.75025902143676",
"human_address" : "{\"address\":\"\",\"city\":\"\",\"state\":\"\",\"zip\":\"10001\"}"
},
"building_type_service_class_" : "Commercial"
}
, {
"consumption_gj_" : "91967",
"zip_code" : {
"needs_recoding" : false,
"longitude" : "-73.98583147024613",
"latitude" : "40.71612146793143",
"human_address" : "{\"address\":\"\",\"city\":\"\",\"state\":\"\",\"zip\":\"10002\"}"
},
"building_type_service_class_" : "Commercial"
} ]
我想说打算从这里打印所有邮政编码
我该如何处理?
答案 0 :(得分:0)
的 LIVE DEMO 强>
var allZips = [];
$.getJSON('http://data.cityofnewyork.us/resource/xm9j-adfx.json', function(data) {
for(i=0;i<data.length;i++){
allZips.push( JSON.parse(data[i].zip_code.human_address).zip );
}
alert( allZips ); // 10001,10002,10003,10004,10005,10006,10007,......
});
你可以使用对象,直到最后一个是带有转义字符串的字符串:
"human_address" : "{\"address\":\"\",\"city\":\"\",\"state\":\"\",\"zip\":\"10001\"}"
这就是为什么你需要首先PARSE数据(将其转换为JSON)而不是检索zip
值。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse