来自Jquery中JSON的匹配和显示值

时间:2011-08-26 16:52:20

标签: jquery ajax json

JSON响应如下:

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

我正在尝试遍历JSON文件中的所有属性,并将作为参数传入的“key”属性的值匹配。

所以,对于插件我传递的值为“T1000”。如果此值作为JSON文件中的批准“key”值存在,我想显示相应的批准“值”(在本例中为Amy Dong)。

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

这是我的JQuery插件代码,但它只是吐出对象Object,object Object。因此,如果我有5个“批准”,则此代码将对象吐出5次。

$.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响应中的属性一样多次)。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你所需要的只是返回value,你需要这样的东西:

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

我假设此代码位于某个函数内部,该函数将返回正确的值。