转换 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);以确保您的数据按预期通过!
我正在尝试将 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);以确保您的数据按预期通过!