计算导入json上特定属性的最简单方法?我试图获得一个状态计数"成功"试过管道,我很困惑
myjson: {
company1 : {
status : "success",
},
company2 : {
status : "failure",
},
company1 : {
status : "success",
},
}
答案 0 :(得分:0)
如果您不知道JSON可以包含的确切属性(company1,company2,...),则首先需要提取它们。
由于javascript中的对象可以像数组一样以类似方式访问,因此您可以使用for (var property in myjson)
轻松迭代所有属性并访问其值myjson[property]
尝试这样的事情:
var myjson = {
company1: { status: "success", },
company2: { status: "failure", },
company3: { status: "success", },
};
var count = 0;
for (var property in myjson)
{
if (myjson.hasOwnProperty(property) && myjson[property].status == "success")
{
count++;
}
}
有关迭代未知结构对象的更多信息,请查看此帖子Iterate through object properties
答案 1 :(得分:0)
您可以进行旧式对象迭代,但我不知道如何处理代码中的重复键。
var companies = {
company1: {
status: "success",
},
company2: {
status: "failure",
},
company3: {
status: "success",
}
}
var successCount = 0;
for (var company in companies) {
var company = companies[company];
for (var status in company) {
if(company[status] === 'success') {
successCount++;
}
}
}
document.getElementById('success').innerHTML = successCount;