[英]How to loop through parsed JSON array using jquery .each()
我有以下正在解析的数据,然后循环浏览以尝试获取每个状态ID和名称。
{
"billing": {
"ACT": "Australian Capital Territory",
"NSW": "New South Wales",
"NT": "Northern Territory",
"QLD": "Queensland",
"SA": "South Australia",
"TAS": "Tasmania",
"VIC": "Victoria",
"WA": "Western Australia"
},
"shipping": {
"ACT": "Australian Capital Territory",
"NSW": "New South Wales",
"NT": "Northern Territory",
"QLD": "Queensland",
"SA": "South Australia",
"TAS": "Tasmania",
"VIC": "Victoria",
"WA": "Western Australia"
}
}
data = '{"billing":{"ACT":"Australian Capital Territory","NSW":"New South Wales","NT":"Northern Territory","QLD":"Queensland","SA":"South Australia","TAS":"Tasmania","VIC":"Victoria","WA":"Western Australia"},"shipping":{"ACT":"Australian Capital Territory","NSW":"New South Wales","NT":"Northern Territory","QLD":"Queensland","SA":"South Australia","TAS":"Tasmania","VIC":"Victoria","WA":"Western Australia"}}'; data = jQuery.parseJSON( data ); billingData = data.billing; $(billingData).each( function( key, value ) { console.log( key + value); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我期望控制台遍历每个状态ID和标签,但是我得到它们的键为0,值作为对象,我也尝试遍历输出的对象(包含来自原始.each
值)。
我也尝试遍历billingData[0]
。
您需要使用jQuery.each()
而不是.each()
来完成此工作。
.each()
遍历jquery元素,而jQuery.each()
遍历数组或对象。
data = '{"billing":{"ACT":"Australian Capital Territory","NSW":"New South Wales","NT":"Northern Territory","QLD":"Queensland","SA":"South Australia","TAS":"Tasmania","VIC":"Victoria","WA":"Western Australia"},"shipping":{"ACT":"Australian Capital Territory","NSW":"New South Wales","NT":"Northern Territory","QLD":"Queensland","SA":"South Australia","TAS":"Tasmania","VIC":"Victoria","WA":"Western Australia"}}'; data = jQuery.parseJSON(data); billingData = data.billing; $.each(billingData, function(key, value) { console.log(key +": "+ value); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
billingData
不是数组。 这是一个对象。 each
jQuery each
可以让您像遍历数组一样遍历对象,也可以只使用对象方法:
data = '{"billing":{"ACT":"Australian Capital Territory","NSW":"New South Wales","NT":"Northern Territory","QLD":"Queensland","SA":"South Australia","TAS":"Tasmania","VIC":"Victoria","WA":"Western Australia"},"shipping":{"ACT":"Australian Capital Territory","NSW":"New South Wales","NT":"Northern Territory","QLD":"Queensland","SA":"South Australia","TAS":"Tasmania","VIC":"Victoria","WA":"Western Australia"}}'; data = jQuery.parseJSON(data); billingData = data.billing; Object.keys(billingData).forEach(function(key) { console.log(key + ": " + billingData[key]) })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
每种都有两种类型:
$ .each(array,function(key,value){
});
$('。element')。each(function(){
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.