본문 바로가기
Programming/Flash

ActionScript 3.0(Flash)에서 JSON 데이터 읽기.

by 신규하 2009. 11. 27.
ActionScript에서 JSON 데이터를 읽어서 파싱하는 예제입니다.
Cake's Good의 내용을 약간 수정하고, adobe core library를 최신 버전으로 업데이트 한 예제입니다.

1. adobe core library를 다운로드 받습니다. 다운로드 받은 파일을 압축을 풀고 src 폴더 안의 com 폴더를 .fla파일이 있는 폴더에 복사해 줍니다.

2. PHP나 개발자가 사용하는 언어로 JSON 파일을 만들어 줍니다.
[ {"name":"Jaylo", "number":"3243251", "age":"23"}, {"name":"Jenny", "number":"8675309", "age":"35"}]

3. 플래쉬 파일에서 첫번째 프레임에 아래 코드를 넣어 줍니다.
import com.adobe.serialization.json.JSON

/* Objects 생성 */
var loader:URLLoader = new URLLoader() ;
var request:URLRequest = new URLRequest() ;

/* numbers.txt에서 데이터 읽어 오기. */
request.url = "numbers.php" ;
loader.load(request) ;

/* 파일 읽기가 완료 되고 나서 decodeJSON을 실행하기 위해서 listener 등록 */
loader.addEventListener(Event.COMPLETE, decodeJSON) ;

/* JSON데이터 디코딩 */
function decodeJSON(event:Event):void {

    var loader:URLLoader = URLLoader(event.target) ;
    var People:Array = JSON.decode(loader.data) ;
    
    /* JSON data를 출력해 보기 */
    trace(People[0].name) ; //Jaylo
    trace(People[0].number) ; //3243251
    trace(People[0].age) ; // 23
    trace(People[1].name) ; //Jenny
    trace(People[1].number) ; //8675309
    trace(People[1].age) ; // 35
    trace("-------------------");
    
    /* for loop로 출력해 보기 */
    for (var key:Object in People) {
        trace(People[key].name) ;
        trace(People[key].number) ;
        trace(People[key].age) ;      
    }
}

실행 결과
Jaylo
3243251
23
Jenny
8675309
35
-------------------
Jaylo
3243251
23
Jenny
8675309
35

예제 다운로드


원본 : http://www.cakesgood.com/2009/04/flash-cs3-actionscript-30-json-keep-it_3277.html

댓글