1

我正在尝试使用数据 api。我仍然处于非常初级的阶段,所以只是深入了解基本的管道。我进行了一些研究以检查所涉及的变量是什么,我发现我必须有某种服务器端脚本来处理 json 的跨域调用。基本上是把它转换成jsonp。现在的问题是如何。我看了看,但并没有真正看到符合我要求的方向。

这是在 .json 中返回的 api

http://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"
} ]

假设我想从这里打印所有邮政编码

我应该如何处理这个?

4

1 回答 1

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\"}"

这就是为什么您需要首先解析数据(将其转换为 JSON)然后检索zip值。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

于 2013-06-27T00:20:58.073 回答