/ / Ottieni alcuni valori nell'array json: javascript, array, json

Ottieni alcuni valori in json array: javascript, array, json

Ho un json che assomiglia a questo. Come posso recuperare le informazioni all'interno del gruppo "demo", senza guardare nell'array come: json["data"][0] Volevo recuperare le informazioni leggendo il primo valore .. "group" e se corrisponde a demo, ottenere tutte le informazioni sul gruppo.

 {
"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
}
]
}

Così a lungo ho:

   let json = JSON.parse(body);
//console.log(json);
console.log(json["data"][1]);

Quale accesso alla "demo"

risposte:

1 per risposta № 1

Elaborare ogni "elemento di dati" e verificare il valore del gruppo. Se corrisponde, allora fai qualcosa.

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 per risposta № 2

Ti consiglio di usare il filtro ()

json.data.filter(function(item){
return item.group === "demo";
});

questo restituirà gli oggetti che hanno "demo" nella proprietà del gruppo

O se vuoi divertirti con es6

json.data.filter(item => item.group === "demo");

0 per risposta № 3

Se la chiave "gruppo" manca per uno qualsiasi dei record, un semplice controllo (simile al codice fornito da @MarkSkayff) darà un errore. Per risolvere questo problema, controlla se esiste json ["data"] [i] e controlla se esiste anche json ["dati" [i] ["gruppo"]

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

Il risultato viene memorizzato nella ris

Non c'è abbastanza spazio qui ma per ulteriori informazioni sul cortocircuito booleano leggere questa spiegazione sulla gestione dei dati JSON irregolari