/ / Holen Sie sich einige Werte in JSON-Array - Javascript, Arrays, JSON

Holen Sie sich einige Werte in Json Array - Javascript, Arrays, Json

Ich habe einen Json, der so aussieht. Wie kann ich die Informationen in der Gruppe "demo" abrufen, ohne in das Array zu schauen: json["data"][0] Ich wollte die Informationen abrufen, die den ersten Wert lesen. "Group" und wenn es Demo entspricht, erhalten Sie alle diese Gruppeninformationen.

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

So lange habe ich:

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

Welcher Zugang zu "Demo"

Antworten:

1 für die Antwort № 1

Verarbeiten Sie jedes "Datenelement" und überprüfen Sie den Gruppenwert. Wenn es passt, dann tu was.

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 für die Antwort № 2

Ich schlage vor, Sie verwenden den Filter ()

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

Dies gibt die Objekte zurück, die "demo" in der Gruppeneigenschaft haben

Oder wenn Sie Lust auf es6 haben wollen

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

0 für die Antwort № 3

Wenn der Schlüssel "group" für einen der Datensätze fehlt, gibt eine einfache Überprüfung (ähnlich dem von @MarkSkayff bereitgestellten Code) einen Fehler aus. Um dies zu beheben, überprüfen Sie, ob json ["data"] [i] vorhanden ist und Überprüfen Sie, ob json ["data" [i] ["group"] ebenfalls vorhanden ist

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

Das Ergebnis wird in res gespeichert

Nicht genug Platz hier aber um mehr über boolesche Kurzschlüsse zu lesen Diese Erklärung zum Umgang mit unregelmäßigen JSON-Daten