我想迭代这种JSON:
{
"object": {
"array1": {
"id": 1
},
"array2": {
"id": 2
}
}
}
我试图用这个:
for (var i in dictionary) {
console.log(dictionary[i].id);
}
但不起作用。
答案 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)})