我正在尝试遍历以下内容:
{
"machine": [{
"cost_center": "15023 DC1 M3 - Hassia1",
"item": [{
"batchno": "367721",
"itemno": "12028"
}, {
"batchno": "367722",
"itemno": "12328"
}, {
"batchno": "367723",
"itemno": "12608"
}]
}, {
"cost_center": "15033 DC1 M4 - Hamba",
"item": [{
"batchno": "367729",
"itemno": "11850"
}, {
"batchno": "367730",
"itemno": "11851"
}, {
"batchno": "367731",
"itemno": "11852"
}]
}, {
"cost_center": "15043 DC1 M5 - 1KG Machine",
"item": {
"batchno": "367732",
"itemno": "12592"
}
}]
}
var json = '{"machine":[{"cost_center":"15023 DC1 M3 - Hassia1","item":[{"batchno":"367721","itemno":"12028"},{"batchno":"367722","itemno":"12328"},{"batchno":"367723","itemno":"12608"}]},{"cost_center":"15033 DC1 M4 - Hamba","item":[{"batchno":"367729","itemno":"11850"},{"batchno":"367730","itemno":"11851"},{"batchno":"367731","itemno":"11852"}]},{"cost_center":"15043 DC1 M5 - 1KG Machine","item":{"batchno":"367732","itemno":"12592"}}]}';
var obj = JSON.parse(json);
var db = obj.machine;
for (var m in db) {
if (db.hasOwnProperty(m)) {
var item = db[m].item;
console.log('cost_center ' + m + ' = ' + db[m].cost_center);
for (var i in item) {
if (item.hasOwnProperty(i)) {
var prod = item[i];
console.log('-itemno ' + i + ' ' + prod.itemno);
}
}
}
}
我在这里发现了类似的问题,但不同之处在于我的数据,我的前 2 个 cost_centers 将数组作为元素,我的第三个不是数组。
COST_CENTER 0 = 15023 DC1 M3 - Hassia1
-itemno 0 12028
-itemno 1 12328
-itemno 2 12608
COST_CENTER 1 = 15033 DC1 M4 - Hamba
-itemno 0 11850
-itemno 1 11851
-itemno 2 11852
COST_CENTER 2 = 15043 DC1 M5 - 1KG机
- itemno batchno undefined
-itemno itemno undefined
如何遍历所有内容并仍然从不包含数组的 cost_center 中获取所有值?谢谢
不需要hasOwnProperty
,item.constructor === Array
可用于检查:
var db = JSON.parse('{"machine":[{"cost_center":"15023 DC1 M3 - Hassia1","item":[{"batchno":"367721","itemno":"12028"},{"batchno":"367722","itemno":"12328"},{"batchno":"367723","itemno":"12608"}]},{"cost_center":"15033 DC1 M4 - Hamba","item":[{"batchno":"367729","itemno":"11850"},{"batchno":"367730","itemno":"11851"},{"batchno":"367731","itemno":"11852"}]},{"cost_center":"15043 DC1 M5 - 1KG Machine","item":{"batchno":"367732","itemno":"12592"}}]}').machine;
for (var m = 0; m < db.length; m++)
{
var e = db[m], item = e.item;
console.log('cost_center ' + m + ' = ' + e.cost_center);
if (item.constructor === Array)
for (var i = 0; i < item.length; i++)
console.log(' itemno ' + i + ' = ' + item[i].itemno);
else
console.log(' itemno 0 = ' + item.itemno);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句