2016-12-15 149 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>"); 
}