我正在尝试从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。
答案 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/