[英]Iterate through a JSON Object with nested arrays
如何使用两个或多个嵌套数组迭代以下JSON对象? 此处的输出未使用key:value返回。 这只是价值观。
{"Obj":
["array 0",
["nested array 1"],
["nested array 2"]
]
};
我可以使用Obj[1]
查看每个数组,但输出仍为JSON: {"Obj":["nested array 1"]}
。 我需要遍历所有这些对象以获得每个嵌套数组中的文本以放入textarea ...
救命!
谢谢大家!
您可以使用.each()
遍历每个级别的数组。 在第一层,您可以使用$.type()
来确定值的类型,以帮助决定是输出该值还是对其进行进一步迭代。
var data = {"Obj":
["array 0",
["nested array 1"],
["nested array 2"]
]
};
$.each( data.Obj, function(i,v) {
if( $.type( v ) == 'string' ) {
// assign v to text
} else {
$.each( v, function(index, value) {
//assign value to text
});
}
});
对于非jQuery解决方案,请尝试Obj[i][j]
。 以下代码向控制台输出“嵌套数组1”,然后输出“嵌套数组2”。
for (var i = 0; i < Obj.length; i++) {
for (var j = 0; j < Obj[i].length; j++) {
console.log(Obj[i][j]);
}
}
遍历对象或数组的一种简单方法是使用jQuery.each() 。
通用迭代器函数,可用于无缝迭代对象和数组。 具有长度属性的数组和类似数组的对象(例如函数的arguments对象)通过从0到length-1的数字索引进行迭代。 其他对象通过其命名属性进行迭代。
例:
var obj = {
"flammable": "inflammable",
"duh": "no duh"
};
$.each( obj, function( key, value ) {
alert( key + ": " + value );
});
如果嵌套数组的数量未知,则可能需要创建一个使用嵌套值调用自身的递归函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.