2009-11-06 3 views
2

AS3에서 JSON 파일 구문 분석에 문제가 있습니다. 임, 여러 JSON 배열을 구문 분석하려고하지만 정말 어떻게 첫 번째 하나에 액세스 한 후 다음에 도착 해야할지 모르겠다. 같은AS3 기본 JSON 질문 구문 분석

{ 
    "term": [ 
      { 
       "id": 4211, 
       "place": "NEW YORK CITY" 
      }, 
      { 
       "id": 2675, 
       "place": "WASHINGTON (DC)" 

      } 
      ], 
    "term": [ 
      { 
       "id": 4211, 
       "place": "NEW YORK CITY" 
      }, 
      { 
       "id": 2675, 
       "place": "WASHINGTON (DC)" 

      } 
] 

} 

내 AS3 코드는 같습니다 :처럼 내 JSON 파일이 보이는 내가 첫 번째 배열에서 데이터를 얻을 수 있습니다

public function parseData(e:Event):void 
    { 
    var loader:URLLoader = URLLoader(e.target); 
    var values:Object = JSON.decode(loader.data); 
    var term:Array = values.term; 
    var counter:Number = 0; 

    for (var key:Object in term) 
    { 
    payload[counter] = [term[key].id, term[key].place]; 
    counter++; 
    } 

     dispatchEvent(new Event(Event.COMPLETE)); 
    } 

,하지만 난이 반복 할 수 있도록 내 코드를 구성 할 방법 또는 더 많은 "용어"배열?

감사

+1

이 객체가 JSON에서 정확히 같은 이름을 가진 두 개의 속성을 가지고 유효인가? – Amarghosh

답변

3

한 것은 당신의 JSON이 약간 이상하다하고 오류가 발생한다는 것입니다. JSON의 주요 클래스는 용어를 두 번 정의하는 사전입니다. 이 오류는 발생하지 않지만 두 번째로 values.term을 덮어 씁니다.

{ 
    "term": [[ 
      { 
       "id": 4211, 
       "place": "NEW YORK CITY" 
      }, 
      { 
       "id": 2675, 
       "place": "WASHINGTON (DC)" 

      }], 
      [{ 
       "id": 4211, 
       "place": "NEW YORK CITY" 
      }, 
      { 
       "id": 2675, 
       "place": "WASHINGTON (DC)" 

      }] 
     ] 

} 

과에 코드 : 당신은 같은에 JSON을 변경해야합니다

public function parseData(e:Event):void 
    { 
    var loader:URLLoader = URLLoader(e.target); 
    var values:Object = JSON.decode(loader.data); 
    var term:Array = values.term; 
    var counter:Number = 0; 

    for (var keys:Object in term) 
    { 
    for (var key:Object in term[keys]) 
    { 
     payload[counter] = [term[keys][key].id, term[keys][key].place]; 
     counter++; 
    } 
    } 

    dispatchEvent(new Event(Event.COMPLETE)); 
} 
6

JSON (또는 다른 주문 매핑 타입) 중복 키를 물을 수 없습니다.

이 솔루션은 다음과 같이 될하기 위해 JSON을 구조 조정하는 것입니다 : 내가 발견

{ 
    "terms": [ 
     [ 
      { 
       "id": 4211, 
       "place": "NEW YORK CITY" 
      }, 
      { 
       "id": 2675, 
       "place": "WASHINGTON (DC)" 

      } 
     ], 
     [ 
      { 
       "id": 4211, 
       "place": "NEW YORK CITY" 
      }, 
      { 
       "id": 2675, 
       "place": "WASHINGTON (DC)" 

      } 
     ] 
    ] 
}