我有以下JSON数据,我需要根据JAVASCRIPT中的 Keytype 来迭代这些数据。 它应该仅从传递的密钥代码返回记录。 假设我需要438的记录意味着它应该只给我以下数据。 (例如:" K":" 43800001"," D":"数据1")
{
"GroupCode": {
"PickType": [
{
"@KeyType": "438",
"R": [
{
"K": "43800001",
"D": "Data1"
}
]
},
{
"@KeyType": "439",
"R": [
{
"K": "43900001",
"D": "Data2"
}
]
},
{
"@KeyType": "440",
"R": [
{
"K": "44000001",
"D": "Data3"
}
]
},
{
"@KeyType": "441",
"R": [
{
"K": "44100001",
"D": "Data4"
}
]
}
]
}
}
因为我不熟悉java脚本并且不熟悉它,我还没有尝试过编码。请帮我获取数据。
答案 0 :(得分:2)
我们说上面的内容存储在变量obj
中。您可以通过以下
var result = obj.GroupCode.PickType.filter(function(item){
return item["@KeyType"] === "438"
}).map(function(item){
return item.R[0];
});
请注意,result
是array
。如果您有针对该条件的唯一对象,则必须检查数组的长度,然后提取对象,即result[0]
或result.shift()
答案 1 :(得分:0)
尝试一个简单的jquery每个循环和一个if:
jquery的:
$.each(obj.GroupCode.PickType,function(i,v){
if (v["@KeyType"] == 438) {
console.log(v.R)//v.R[0];
}
});
的javascript:
for(v in obj.GroupCode.PickType) {
if (v["@KeyType"] == 438) {
console.log(v.R)//v.R[0];
}
}
答案 2 :(得分:0)
function getByKeyType(keytype) {
for(i in f.GroupCode.PickType) {
if(f.GroupCode.PickType[i].KeyType == keytype) {
return f.GroupCode.PickType[i].R[0];
}
}
return null;
}
alert(getByKeyType(438).K)
alert(getByKeyType(438).D)
答案 3 :(得分:0)
试试这个
function getByKeyType(keytype) {
for(i in f.GroupCode.PickType) {
if(f.GroupCode.PickType[i].KeyType == keytype) {
return f.GroupCode.PickType[i].R[0];
}
}
return null;
}