2016-12-15 151 views
0

我JSON文件是這樣的:如何從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"} 
    ] 

如何讓所有的「名」有「類」:「食」? 我想這樣,但它不能正常工作。

$.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"); 
    }); 

回答

0

你忘了使用===操作(可以使用==代替,但它被認爲是更好的做法是使用===)。你寫的代碼將包含對象中的每個元素,因爲if (val.category = "food")將始終評估爲真,並且它實際上會更改category的值。

修復如下。

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