用javascript解析JSON数据

用javascript解析JSON数据,javascript,jquery,json,Javascript,Jquery,Json,我有以下JSON数据,我需要基于JAVASCRIPT中的Keytype迭代这些数据。 它应该只从传递的键代码返回记录。 假设我需要438的记录,这意味着它应该只提供以下数据。 (例如:“K”:“43800001”,“D”:“数据1”) 由于我不擅长java脚本,而且还不熟悉它,所以我没有尝试为此编写代码。请帮我获取数据 假设上述内容存储在变量obj中。您可以通过以下方式获得结果 var result = obj.GroupCode.PickType.filter(function(item){

我有以下JSON数据,我需要基于JAVASCRIPT中的Keytype迭代这些数据。 它应该只从传递的键代码返回记录。 假设我需要438的记录,这意味着它应该只提供以下数据。 (例如:“K”:“43800001”,“D”:“数据1”)


由于我不擅长java脚本,而且还不熟悉它,所以我没有尝试为此编写代码。请帮我获取数据

假设上述内容存储在变量
obj
中。您可以通过以下方式获得结果

var result = obj.GroupCode.PickType.filter(function(item){
                return item["@KeyType"] === "438"
            }).map(function(item){
               return item.R[0];
            });

请注意
结果
是一个
数组
。如果您有唯一的对象,则必须检查数组的长度,然后提取对象,即
result[0]
result.shift()

让我们假设上述内容存储在变量
obj
中。您可以通过以下方式获得结果

var result = obj.GroupCode.PickType.filter(function(item){
                return item["@KeyType"] === "438"
            }).map(function(item){
               return item.R[0];
            });

请注意
结果
是一个
数组
。如果有唯一的对象,则必须检查数组的长度,然后提取对象,即
result[0]
result.shift()

尝试一个简单的jquery每个循环,如果:

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];
   }
}

尝试对每个循环执行一个简单的jquery,如果:

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];
   }
}

试试这个

  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;
}
试试这个

  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;
}


解析JSONY您应该尝试,而不是将其放入directly@JaromandaX为什么他需要解析它?它已经是js对象,采用了有效的JSON格式,这是我从问题标题-my中假定的bad@JaromandaX哦,是的,那就是答案;)解析JSONY您应该尝试,而不是将其放入directly@JaromandaX为什么他需要解析它?它已经是js对象,采用了有效的JSON格式,这是我从问题标题-my中假定的bad@JaromandaX哦,是的,那就是答案;)非常接近,但返回一个数组。OP wants
.map(…)[0]
@A.Wolff-我正在编辑带有注释的答案。谢谢你这么说,你不需要映射它:
obj.GroupCode.PickType.filter(函数(项){returnitem[“@KeyType”]===“438”}[0].R[0]但不知何故,您的代码更readable@A.Wolff-我希望这是一个答案,这样我就可以向上投票:)@nikil这里的filter函数中item的用途非常接近,但返回一个数组。OP wants
.map(…)[0]
@A.Wolff-我正在编辑带有注释的答案。谢谢你这么说,你不需要映射它:
obj.GroupCode.PickType.filter(函数(项){returnitem[“@KeyType”]===“438”}[0].R[0]但不知何故,您的代码更readable@A.Wolff-我希望这是一个答案,这样我就可以投票了:)@nikil过滤函数中项目的用途是什么?不,它不起作用
var result=JSON.parse(obj)
我认为OP的代码中的obj
已经是一个objectNo,它不会工作
var result=JSON.parse(obj)
我认为OP的代码中的
obj
在这里已经是一个objectwarning,
$。每个
都不是普通的javascript,它附带jQuery:jslib。不要认为这是理所当然的知识。另外,op说他是javascript新手,所以在测试代码时可能会出现错误,并想知道“.为什么?”,添加一些其他信息一切都有可能,感谢您的编辑和burning replywarning,
$。每个
都不是普通的javascript,它附带jQuery:js库。不要认为这是理所当然的知识。另外,op说他是javascript新手,所以在测试代码时可能会出错,并想知道“.为什么?”,添加一些其他信息一切都有可能,感谢您的编辑和回复