好的,之前我问过一般性问题。让我更具体一点。
我在JSON中有这个数据集,它包含许多嵌套对象和数组。
以下是一个示例:
"data": [
{
"attributes": {
"type": "analysis"
},
"disturbance": {
"attributes": {
"ID": "1861111306_114S_793E"
},
"cycloneName": "XXXX861056",
"fix": [
{
"validTime": "1861-11-13T06:00:00",
"latitude": "-11.40",
"longitude": " 79.30",
"cycloneData": {
"minimumPressure": {
"pressure": " 0.0"
},
"maximumWind": {
"speed": " 0.0",
"averagingPeriod": "10"
}
}
},
{
"validTime": "1861-11-14T06:00:00",
"latitude": "-13.00",
"longitude": " 73.90",
"cycloneData": {
"minimumPressure": {
"pressure": " 0.0"
},
"maximumWind": {
"speed": " 0.0",
"averagingPeriod": "10"
}
}
},
我可以使用以下方法迭代并获取所有唯一ID:
console.log(json.data[i].disturbance.attributes.ID);
当我尝试完成并获取数组修复中所有纬度和经度对的值时,我只获得对象“干扰”的第一个实例的值并且此错误
Uncaught TypeError: Cannot read property 'latitude' of undefined
我正在尝试使用它:
var l = $(json.data[i].disturbance.fix).length;
console.log(l);
for(h=0;h<=l;h++) {
console.log(json.data[i].disturbance.fix[h].latitude, json.data[i].disturbance.fix[h].longitude);
}
发生了什么事?我真的不清楚如何在每个阵列修复中得到每个纬度/长度(这组数据总共有14个)。每个fix []都有多个未命名的对象,包含lat / long和其他数据对象。
有人能指出我正确的方向吗?
这是我完整的javascript:
$.getJSON("hurricane-json.json", function(json) {
$.each(json, function(){
var d = $(json.data).length;
for(i=0; i<=d;i++){
console.log(i);
console.log(json.data[i].disturbance.attributes.ID );
var l = $(json.data[i].disturbance.fix).length;
console.log(l);
for(h=0;h<=l;h++) {
console.log(json.data[i].disturbance.fix[h].latitude, json.data[i].disturbance.fix[h].longitude);
}
}
});
});
谢谢!