如何使用jQuery迭代JSON对象

时间:2016-12-16 12:10:17

标签: javascript jquery json

我想迭代这种JSON:

{
  "object": {
    "array1": {
      "id": 1
    },
    "array2": {
      "id": 2
    }
  }
}

我试图用这个:

for (var i in dictionary) {
  console.log(dictionary[i].id);
}

但不起作用。

3 个答案:

答案 0 :(得分:1)

我到处搜索,找不到我想要的答案。说真的吗?没看到$.each做了什么?

  

通用迭代器函数,可用于无缝迭代对象和数组。具有length属性的数组和类似数组的对象(例如函数的参数对象)由数字索引迭代,从0到length-1。其他对象通过其命名属性进行迭代。

var arr = {
  "object": {
    "array1": {
      "id": 1
    },
    "array2": {
      "id": 2
    }
  }
};
$.each(arr, function (i, v) {
  console.log(i);
  console.log(v);
  $.each(v, function (idx, val) {
    console.log(idx);
    console.log(val);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<强> AJAX

如果你使用AJAX来获取JSON,你可以很好地使用:$.getJSON

$.getJSON("https://cdn.rawgit.com/fge/sample-json-schemas/master/avro/avro-schema.json", function (res) {
  $.each(res, function (i, v) {
    console.log(i);
    console.log(v);
    if (typeof v == "object")
    $.each(v, function (idx, val) {
      console.log(idx);
      console.log(val);
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:-1)

var objectData = {
  "object": {
    "array1": {
      "id": 1
    },
    "array2": {
      "id": 2
    }
  }
};

$.each(objectData, function(key, data){
    // Do stuff here
});

要使用URL中的json:

$.ajax({
    url: URL,
    dataType: 'jsonp',
    success: function(json) {
       $.each(json, function(key, data){
           console.log(key);
           console.log(data);
        });
    }
});

答案 2 :(得分:-1)

尝试以下

var d={
  "object": {
    "array1": {
      "id": 1
    },
    "array2": {
      "id": 2
    }
  }
}

$.each(d,function(i,v){console.log(i,v)})