转换 Geojson 嵌套数组数据并将其打印为 jquery 中的列表

Converting Geojson nested array data and printing it as a list in jquery

我正在尝试将 GeoJson 数据转换为 jquery 并打印特定值。 下面提到的是JSON代码。

 {

 "type": "FeatureCollection",
 "metadata": 
  {
  "generated": 1445482204000,
  "url": "http://earthquake.usgs.gov/fdsnws/event/1/query?  
  format=geojson&starttime=2015-01-01&endtime=2015-01-02",
  "title": "USGS Earthquakes",
  "status": 200,
  "api": "1.0.17",
  "count": 343
  },
 "features": [
  {
  "type": "Feature",
  "properties": {
    "mag": 2.51,
    "place": "21km ESE of Coso Junction, California"
   }
   }
   ]
   }

下面提到的是我的 JSON 文件,我想打印出现在 "properties" 中的键 "place",出现在 jquery 的 "features" 数组中。

以下是我的努力:

    $("#button2").click(function(){
    $.get("http://earthquake.usgs.gov/fdsnws/event/1/count?
    format=geojson&starttime=2015-10-14&endtime=2015-10-21",
    function(data,status){
    $.each(data.features.properties, function (i, ob) {
    $.each(ob, function (ind, obj) {
    console.log("key:" + ind + " value:" + obj);
    });
    });

   });
   });  

HTML:

   <div id="Sesimic_Events">
   <button id="button2">Places affected</button>

下面提到的是我得到的错误

 TypeError: data.features is undefined

非常感谢任何帮助!

所以你的基本错误是,在你的 $.get 方法中,你正在调用他们的 API 来获取他们的实际数据在 'http://earthquake.usgs.gov/fdsnws/event/1/count?format=geojson&starttime=2015-10-14&endtime=2015-10-21' which would not return the objects you want as shown above. you really want to ping this address: http://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2015-10-14&endtime=2015-10-21 的计数,这样你就可以通过并获得信息....

所以它真的应该是

$("#button2").click(function(){
    $.get("http://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2015-10-14&endtime=2015-10-21",
    function(data, status) {
    $.each(data.features.properties, function (i, ob) {
        $.each(ob, function (ind, obj) {
           console.log("key:" + ind + " value:" + obj);
        });
    });
  });
});  

但这会引起其他明显的错误,您连接的对象实际上是一个数组,因此 data.features = [{},{}.{}];所以 data.features.properties 仍然是未定义的。因为我也将使用这些数据,我想我会帮助您按照您期望的方式解析它:

$.get("http://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2015-10-14&endtime=2015-10-21",
function (data, status) {

    $.each(data.features, function(index, object){
        $.each(object.properties, function(i,obj){
            console.log("key: ", i, " value: ", obj);
        });
    });

});

最重要的是,如果您从 get 中得到错误,请不要假设数据是正确的,只需做一个无害的 console.log(data);以确保您的数据按预期通过!