读取未知参数json javascript

时间:2012-07-22 09:07:11

标签: javascript json

我正在尝试从javascript中读取json。我已经能够读取该文件,但由于其结构,我在从该文件中检索信息时遇到了一些问题。我不知道某些级别的名字......

这是一个例子:

{
    "zona": [{
        "zona1": [{
            "lon": "-3.841867446899414",
            "lat": "43.466002139041116"
        }, {
            "lon": "-3.838176727294922",
            "lat": "43.466002139041116"
        }, {
            "lon": "-3.838348388671875",
            "lat": "43.46432016607394"
        }, {
            "lon": "-3.843669891357422",
            "lat": "43.46276274196949"
        }]
    }, {
        "zona2": [{
            "lon": "-3.832254409790039",
            "lat": "43.462513550389424"
        }, {
            "lon": "-3.8265037536621094",
            "lat": "43.46375949801845"
        }, {
            "lon": "-3.8254737854003906",
            "lat": "43.461641371770504"
        }, {
            "lon": "-3.829936981201172",
            "lat": "43.46002157809642"
        }, {
            "lon": "-3.832683563232422",
            "lat": "43.461142978339005"
        }]
    }]
}

我试图做这样的事情,但我觉得我有点无辜lol

function fun() {
    var zona;
    $.getJSON('listaPuntosZona.json', function(data) {
        for (i = 0; i < data.zona.length; i++) {
            zonaX = 'zona' + (i + 1);
            alert(data.zona[i].zonaX.length);
        }
    });

我已阅读有关foreach循环但我不理解它们因此我无法为它们编写代码。有没有办法按照我的想法去做? 第三个参数,ZonaX从zona1变为zonaN但1,2,3 .... N,总是+1。

3 个答案:

答案 0 :(得分:2)

要探索未知的JSON /对象结构,可以将函数walk(data)称为 ...功能(数据){walk(data); ...

        function walk(data) {
            if(typeof(data) == "object") {
                for(key in data) {
                   console.log(key+": "+data[key]);
                   walk(data[key]);
                }
            }
        }

答案 1 :(得分:1)

尝试

for (key in data.zone)
{
}

答案 2 :(得分:1)

您似乎使用jQuery,因此我们以jQuery方式遍历数组:

$.each(data, function(index) {
    console.log(index);
    $.each(this, function(index) {
        console.log(index);
        $.each(this, function(index) {
            console.log(this);
        });
    });
});

查看您的JavaScript控制台,您将了解它的工作原理并阅读jQuery文档:http://api.jquery.com/jQuery.each/