我有一个看起来像这样的json。
如何检索“demo”组内的信息,而不是像以下那样查看数组:json['data'][0]
我想检索读取第一个值的信息..“group”如果它与demo匹配,那么获取所有组资讯
{
"filter": "*",
"data": [
{
"group": "asdasd",
"enable": 1,
"timeout": 7,
"otpMode": 0,
"company": "cool",
"signature": "ou yeah",
"supportPage": "",
"newsLanguages": [
0,
0,
0,
0,
0,
0,
0,
0
],
"newsLanguagesTotal": 0
},
{
"group": "demo",
"enable": 1,
"timeout": 7,
"otpMode": 0,
"company": "pppppooo",
"signature": "TTCM",
"supportPage": "http://www.trz<xa",
"newsLanguages": [
0,
0
],
"newsLanguagesTotal": 0
}
]
}
我有这么久:
let json = JSON.parse(body);
//console.log(json);
console.log(json['data'][1]);
访问“demo”
答案 0 :(得分:1)
处理每个&#34;数据项&#34;并检查组值。如果匹配,那就做点什么。
var json = JSON.parse(jsonStr);
for(var i=0;i<json.data.length;i++){
if(json.data[i].group == "demo"){
var group = json.data[i];
// Process the group info
}
}
答案 1 :(得分:1)
我建议你使用filter()
json.data.filter(function(item){
return item.group === "demo";
});
这将返回组属性
中具有“demo”的对象或者如果你想用它来获得花哨的es6
json.data.filter(item => item.group === "demo");
答案 2 :(得分:0)
如果任何记录缺少密钥“group”,则进行简单检查(类似于@MarkSkayff提供的代码)将产生错误。要解决此问题,请检查json [“data”] [i]是否存在和检查json [“data”[i] [“group”]是否也存在
function json_data(){
var res=[]
for (var i in json["data"]){
if(json["data"][i] && json["data"][i]["group"] === "demo"){ //strict comparison and boolean shortcircuiting
res.push(json["data"][i])
}
}
console.log(res)
}
结果存储在res
中此处空间不足,但更多关于布尔短路读取this explanation of dealing with irregular JSON data