Разбор конкретных значений в JSON для AJAX - PullRequest
1 голос
/ 27 февраля 2010

Мне дали этот код ранее, но мне трудно разобрать правильные данные.

У меня есть следующий JSON

{ flavors: [{"image":"images/bbtv.jpg", "desc":"BioBusiness.TV", "id":"1"},{"image":"images/grow.jpg", "desc":"Grow Staffing", "id":"2"}]}

и я хочу показать только идентификатор: 1 или идентификатор: 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, поэтому любая помощь будет принята с благодарностью.

Спасибо!

Ответы [ 2 ]

1 голос
/ 27 февраля 2010

Почему бы просто не проверить "каждый" код?

  $.each(data.flavors, function(i,item){
      if (item.id > 2) return;
      $('#flavor-detail div').append('<ul><li><p>' + item.desc + '</p></li></ul>');
  });
0 голосов
/ 27 февраля 2010

я изменил следующий код, чтобы сделать его "фильтруемым"

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

спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...