排序json对象与javascript不工作



我想知道数据集中的物质是否有真或假的读数。

数据集是这样的(var drugs for l (0),

{Caffeine: "{"drug":"Caffeine","dose":10,"amount":0}", Ritalin: "{"drug":"Ritalin","dose":"15","amount":1}"}

我在javascript中使用的算法目前是这样的。

var results = JSON.parse(overall[l].testdetails.result)
var drugs = overall[l].testdetails.drug
let substances = false
if (drugs != null) {
console.log("drugs: ",drugs)
for (var d = 0; d < drugs.length; d++ ){
var keyValue=Object.keys(drugs[d])
console.log("drug: ",drugs.keyValue)
if(JSON.parse(drugs.d.amount) !=0) {
substances=true
break
}
// console.log("drugs amount: ",JSON.parse(drugs[d].amount))
}
} 

由于某些原因,我无法做控制台日志,或者根本无法解析这个数据集。

我做错了什么?

从我可以看到,如果它是一个数组,迭代药物列表会更容易。在这方面,要注意你的数据是字符串还是对象。在你的代码中,我对此有点困惑。

字符串:

var drugsStr = '{"Caffeine":{"drug":"Caffeine","dose":10,"amount":0}, "Ritalin": {"drug":"Ritalin","dose":"15","amount":1}}';
var drugs = JSON.parse(drugsStr);
console.log(drugs);

对象:

var drugs = {Caffeine: {drug:"Caffeine",dose:10,"amount":0}, Ritalin: {drug:"Ritalin",dose:"15",amount:1}};

所以,这是一个对象(drugs)的解:

var drugs = {Caffeine: {drug:"Caffeine",dose:10,"amount":0}, Ritalin: {drug:"Ritalin",dose:"15",amount:1}};
var keys = Object.keys(drugs);
keys.forEach(key => {
console.log(drugs[key].drug);
console.log("drugs amount:", drugs[key].amount);
});

您的Json格式不正确。

let drugs = {
"Caffeine": {
"drug":"Caffeine",
"dose":10,
"amount":0
},
"Ritalin" : {
"drug":"Ritalin",
"dose":"15",
"amount":1
}
}
for (const [key, value] of Object.entries(drugs)) {
if(value['amount'] > 0 ) {
console.log( 'Positive for ' + key )
} else {
console.log( 'Negative for ' + key )
}
}

最新更新