2016-12-15 8 views
0

Ich habe JSON-Datei wie folgt aus:Wie bekomme ich spezifische Daten von JSON?

[ 
     {"category":"food","id":"07","name":"hey"}, 
     {"category":"not","id":"06","name":"hey1"}, 
     {"category":"food","id":"05","name":"hey2"}, 
     {"category":"not","id":"04","name":"hey3"} 
    ] 

Wie alle „Namen“ zu erhalten, die „Kategorie“ haben: „Lebensmittel“? Ich versuche so, aber es funktioniert nicht richtig.

$.getJSON("test.json", function(data) { 
     var items = []; 
     $.each(data, function(key, val) { 
     if (val.category = "food"){ 
     items.push("<li>" + val.name + "</li>"); 
     } 
    }); 

    $("<ul/>", { 
     "class": "my-new-list", 
     html: items.join("") 
    }).appendTo("div"); 
    }); 

Antwort

0

Sie haben vergessen, den === Operator zu verwenden (Sie == stattdessen verwenden können, aber es ist besser Praxis als === zu verwenden). Ihr Code wie geschrieben enthält jedes Element im Objekt, da if (val.category = "food") immer als wahr ausgewertet wird und den Wert category tatsächlich ändert.

Fix unten.

if (val.category === "food"){ 
     items.push("<li>" + val.name + "</li>"); 
} 
Verwandte Themen