麻烦迭代JSON数据

时间:2015-06-23 21:25:09

标签: javascript jquery json

好的,之前我问过一般性问题。让我更具体一点。

我在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);

    }
    }
});

});

谢谢!

0 个答案:

没有答案