Jquery:使用唯一键名迭代嵌套JSON

时间:2011-11-27 23:52:49

标签: javascript jquery json foreach

我在JSON中有一大堆对象,如下所示:

  var data = {
    4eae1aa12efa83745d00000b: {
        location: "office",
        latLong: [
            40.7069546, -74.0094471
        ],
    },
    4eae1aa12efa83745d000000: {
        location: "home",
        latLong: [
            42.3584308, -71.0597732
        ]
    }
  };

4eae1aa12efa83745d00000b样式键是随机的。如何遍历JSON以打印每个嵌套JSON对象的位置和latLong数组?

我试过了:

$.each(data, function() {
      $.each(this, function() {

        console.log(this.location);

      });
});

但这不会返回任何内容

3 个答案:

答案 0 :(得分:1)

您应该查找$.map function来翻译对象/数组中的项目 - 请执行以下操作:

$.map(data, function(val, i){

    console.log(val.location);
    console.log(val.latLong[1]);
    console.log(val.latLong[2]);

})

我相信这就是你所追求的目标。

答案 1 :(得分:1)

你唯一的问题是你不需要内循环。

$.each(data, function(id, value) {
    console.log(value.location);
});

答案 2 :(得分:0)

您正在尝试遍历对象的属性。要做到这一点:

for(var prop in obj) {
    if(obj.hasOwnProperty(prop))
        // do something with obj[prop].latLng
}