2010-02-27 5 views
1

이전에이 코드를 받았지만 정확한 데이터를 파싱하는 데 어려움을 겪고 있습니다.JSON에서 아약스의 특정 값을 파싱

나는 다음과 같은 JSON

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

이 있고 난 단지 ID를 표시하려면 : 1 또는 ID : 2.

은이 코드는 아무 것도 반환하지 않습니다는 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; 
} 

을 통해 필터링하는 아약스

다음 코드
$.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에 꽤 새로 워진 Ajax 덕분에 도움을 얻을 수있었습니다.

감사합니다.

답변

1

"각"코드를 체크하지 않는 이유는 무엇입니까?

+0

단순한 데이터를 분석하는 데는 효과가 있지만, 예를 들어 id1 show id1과 id2 show id2가있는 경우 가장 좋은 방법은 무엇입니까? btw, 답장을 보내 주셔서 감사합니다. –

+0

글쎄, 나는 "필터"기능을 사용하는 곳이나 전화하는 방식을 완전히 이해하지 못합니다. 그것은 틀리게 보지 않는다, 그러나 나는 나가 그것을 그렇게 할 것이라고 생각하지 않는다; 필자는 원하는 "id"값을 가진 요소를 찾고 그 값을 수집 할 새 객체를 만드는 함수를 가질 가능성이 더 큽니다. – Pointy

+0

오 기다림; 죄송합니다. 나는 장님이되어야합니다 - 지금 그 기능을 보았습니다. 한번 생각해 봅시다. – Pointy

0

$.each(data.flavors, function(i,item){ 
     if (item.id > 2) return; 
     $('#flavor-detail div').append('<ul><li><p>' + item.desc + '</p></li></ul>'); 
    }); 
내가, 그것은 "필터링"
$.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"; 
    }) 

덕분에 다음 코드를 변경!

관련 문제