2011-10-11 1 views
1

JSON 배열에서 정보를 가져 오는 데 문제가 있습니다. 정보를 검색하고 구문 분석하는 방법을 알고 있습니다. 그래서 이것은 문제가되지 않습니다. Facebook에서 정보를 얻으려면 JQuery를 사용합니다. 태그 아래 https://graph.facebook.com/284521968232566/photosJSON 배열 하위 값의 값으로 재정렬 또는 필터링

, 당신은 몇 가지 항목을 볼 수 있습니다 :

기본적으로, 필요한 것을 다음 링크의 JSON 출력을 구조 조정하는 것입니다. 실제로 모든 것을 정렬하여 태그별로 정렬되도록해야합니다. 즉 의미

Pauke { [name, source, link], [name, source, link] } 
Trompete { [name, source, link], [name, source, link] } 

를 분명히, 당신은 최상위 항목이 하나 개의 항목을 가지고 볼 수 있지만 즉시이 자랄거야 더 많은 사진이 있기 때문에.

이것은 배열의 올바른 형식이 아닐 수도 있습니다. 접근 방법에 대해 공개하고 있습니다.

var json = {} ; // The json data - this needs to be pre-populated 
var result = [] ; // Result Array 
var tag ; // Temporary variable for each tag in turn. 

for(var i=0;i<json.data.length;i++) { 
    if( typeof json.data[i].tags != 'undefined' 
     && typeof json.data[i].tags.data != 'undefined' 
    ) { 
     for(var j=0;j<json.data[i].tags.data.length;j++) { 
      tag = json.data[i].tags.data[j] ; 
      if(typeof(tag.name != 'undefined') { 
       if(typeof result[tag.name] == 'undefined') result[tag.name] = [] ; 
       result[tag.name][result[tag.name].length] = { 
        'name' : tag.name, 
        'source' : json.data[i].source, 
        'link' : json.data[i].link 
       } ; 
      } 
     } 
    } 
} 

이것은, (태그)하는 각각의 배열을 생성합니다

같은 뭔가를해야만, 그 결과 배열을 구축하고 이상 data[i].tags.data 그래서 그냥 data 반복, 당신에게

+0

재 배열 된 태그 객체 만 필요하거나 전체 json이 수정되어야합니까? – Andy

+0

태그로 구조화해야합니다. 배경 정보 : JSON 데이터는 밴드의 페이스 북에있는 사진 앨범의 출력물입니다. 모든 그림에서 밴드 멤버가 연주하는 악기에 따라 태그가 붙습니다. 따라서 누군가가 둘 이상을 플레이하면 하나 이상의 태그가 생성 될 수 있습니다. 결과적으로 밴드 멤버는 결국 웹 페이지의 하나 이상의 섹션에 나타나야합니다. – phbs

답변

1

OK를 감사하고, 태그 이름을 가진 각 이미지에 대한 정보를 포함하는 하나의 객체가있는 이미지 배열입니다.