比较Jquery中的JSON值

我想检查“T1000”是否作为以下JSON中的批准“密钥”存在。 如果它存在,那么我想显示相应的批准“值”。

{"approvals": [ {"approval": { "id":"0121920", "key":"T100", "value":"Ben Tsu" } }, {"approval": { "id":"", "key":"T1000", "value":"Amy Dong" } } ] } 

我将JSON作为Ajax响应。 我正在尝试遍历所有属性并将其与作为参数传入的值匹配。

这是我的代码,但它只吐出对象Object,object Object。 因此,如果我有5个属性,则此代码将对象吐出5次。

我将inputFieldDefaultValue作为参数传递给插件,其值为T1000。 因此,o.inputFieldDefaultValue。

 $.each(response.approvals, function(index, approvals){ if(approvals.approval.key == o.inputFieldDefaultValue){ approvals.approval.value; } }); 

如果我做

 $.each(response.approvals, function(index, approvals){ if(approvals.approval.key == o.inputFieldDefaultValue){ alert(approvals.approval.value); } }); 

它会提醒相应的值(Amy Dong),但它仍会写入对象Object(与JSON响应中的属性一样多次)。

您可以使用以下遍历对象的代码来访问JSON对象的值:

 var approvals = obj.approvals; for(var i = 0; i < approvals.length; i++) { if(approvals[i].approval.key = 'T1000') { // Display approvals[i].approval.value } } 

它可以在没有jQuery的情况下完成。 你只需要Array.prototype.filterArray.prototype.map

 var aListOfAllValuesFromKeysEqualsToT1000 = json.approvals.filter(function(approval) { return approval.key === "T1000"; }).map(function(approval) { return approval.value; }); 

然后使用aListOfAllValuesFromKeysEqualsToT1000来执行您想要的值。

你将首先使用你的json并使用JSON.parse(json)来获取一些对象文字。 从那里你会做

 var ary = obj.approvals; for (var i = 0; i < ary.length; i++) { var current = ary[i], val; if (current.key === 'T1000') { val = current.value; break; } } 

使用jQuery:

 var approvals = obj.approvals; $.each(approvals, function () { if (this.approval.key === 'T1000') { alert(this.approval.value); } });