Ich habe ein JSON und möchte die Ausgabe mit der Funktion .filter() nach etwas suchen und gefiltert ausgeben.
Es soll nur über "Name" gesucht werden. Z.B. möchte ich alle Einträge haben, die beim "Name" das Wort "Programm" enthält. In dem Fall müsste ich zwei Ergebnisse zurück bekommen. "Programme und Funktionen" und "Programmierung"
Mein JSON
Code: Alles auswählen
{
"KategorieAGH":[
{
"Name":"Programme und Funktionen",
"Wert":25
}
],
"KategorieTZU":[
{
"Name":"Programmierung",
"Wert":75
},
{
"Name":"Funktionalität",
"Wert":50
}
],
"KategorieHGA":[
{
"Name":"Hallo Welt",
"Wert":10
},
{
"Name":"Hallo Sabine",
"Wert":90
}
]
}
Code: Alles auswählen
var json = '[{"KategorieAGH":[{"Name":"Programme und Funktionen","Wert":25}],"KategorieTZU":[{"Name":"Programmierung","Wert":75},{"Name":"Funktionalität","Wert":50}],"KategorieHGA":[{"Name":"Hallo Welt","Wert":10},{"Name":"Hallo Sabine","Wert":90}]}]';
obj = JSON.parse(json);
var data_filter = obj.filter( element => element.Name == "Programm")//"Programme und Funktionen" funktioniert auch nicht
console.log(data_filter)
Ein anderes Beispiel mit einem einfachen JSON mit einer Ebene funktioniert tadellos:
Code: Alles auswählen
var data = [{"name":"Lenovo Thinkpad 41A4298","website":"google"},
{"name":"Lenovo Thinkpad 41A2222","website":"google"},
{"name":"Lenovo Thinkpad 41Awww33","website":"yahoo"},
{"name":"Lenovo Thinkpad 41A424448","website":"google"},
{"name":"Lenovo Thinkpad 41A429rr8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ff8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ss8","website":"rediff"},
{"name":"Lenovo Thinkpad 41A429sg8","website":"yahoo"}]
var data_filter = data.filter( element => element.website =="yahoo")
console.log(data_filter)