我之前获得了此代码,但很难解析正确的数据。
我有以下JSON
{ flavors: [{"image":"images/bbtv.jpg", "desc":"BioBusiness.TV", "id":"1"},{"image":"images/grow.jpg", "desc":"Grow Staffing", "id":"2"}]}
我想只显示id:1或id:2。
我有以下Ajax代码
$.ajax({
type: "POST",
url: "foodservice/all.js",
dataType: "json",
cache: false,
data: {"flavors": filterId(flavors, 'a')},
contentType: "application/json",
success: function(data) {
$('#flavor-detail').html("<div/>");
$.each(data.flavors, function(i,item){
$('#flavor-detail div').append('<ul><li><p>' + item.desc + '</p></li></ul>');
});
}
});
和以下函数来过滤JSON对象
function filterId(obj, filteredId) {
var resultObj = $.extend({},obj);
for (var i in obj) {
if ( obj.hasOwnProperty(i) ) {
if ( obj[i].id && obj[i].id !== filteredId ) {
delete obj[i];
}
}
}
return resultObj;
}
但是,此代码不会返回任何内容。 有人能告诉我我错过了什么吗?
我是JSON,Ajax的新手,所以任何帮助都会非常感激。
谢谢!
答案 0 :(得分:1)
为什么不直接检查“每个”代码?
$.each(data.flavors, function(i,item){
if (item.id > 2) return;
$('#flavor-detail div').append('<ul><li><p>' + item.desc + '</p></li></ul>');
});
答案 1 :(得分:0)
我更改了以下代码,使其“可过滤”
$.ajax({
type: "GET",
url: "foodservice/all.js",
dataType: "json",
cache: false,
contentType: "application/json",
success: function(data) {
$('#flavor-detail').html("<div/>");
$.each(data.flavors, function(i,item){
if (item.id != flavorid) return;
$('#flavor-detail div').append('<ul><li><p>' + item.desc + '</p></li></ul>');
});
}
});
并为每个链接更改输出
$('#amare').click(function(){
flavorid = "1";
});
$('#sec').click(function(){
flavorid = "2";
})
谢谢!