• json은 자바스크립트 object와 array의 조합으로된 데이터 교환형식이다.
  • json개요 : 바로가기
  • 클래스 파일 다운로드 : as3corelib github

data.json

{
	"test1" : "test1_value"
	,"test2" : "test2_value"
}

Timeline

var obj:Object = new Object();
var getSetting:GetJSON = new GetJSON('data.json');
getSetting.addEventListener(Event.COMPLETE, getSettingComplete);
private function getSettingComplete(e:Event):void
{
	obj = e.target.obj;
	getSetting.log();
}

GetJSON.as

package
{
	import com.adobe.serialization.json.*;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.*;
	public class GetJSON extends Sprite
	{
		public var obj = new Object();
		public function GetJSON(url:String)
		{
			var loader:URLLoader = new URLLoader();
			loader.dataFormat = URLLoaderDataFormat.TEXT;
			loader.addEventListener(Event.COMPLETE, onComplete);
			loader.load(new URLRequest(url));
		}
		private function onComplete(e:Event):void
		{
			var loader:URLLoader = URLLoader(e.target);
			obj = JSON.decode(loader.data);
			this.dispatchEvent(new Event(Event.COMPLETE));
		}
		// object contents check
		public function log():void
		{
			typeCheck(obj, 0);
		}
		// Type check
		private function typeCheck(data:*, depth:int):void
		{
			var str:String = '';
			for (var key in data) { 
				for (var i = 0; i < depth * 4; i++) { str = str + ' ';}
				trace('*' + key)
				if (typeof data[key] == 'Object' && data[key] is Array == false) {
					trace(str + 'type: [' + typeof data[key] + '], key: [' + key + ']');
					typeCheck(data[key], depth + 1);
					continue;
				}
				trace(str + 'type: [' + typeof data[key] + '], key: [' + key + '], value: [' + data[key] + ']\n===============\n');
			}
		}
	}
}

result

// test1
type: String, key: [test1], value: test1_value
// test2
type: String, key: [test2], value: test2_value
  • 외부 json파일을 로드하여 로드가 완료되면 obj변수로 삽입한다. 모든 작업이 완료되면 호출한 곳에다 이벤트를 날려서 getSetting.obj 변수로 사용할 수 있다.
  • getSetting.log() 메서드를 이용하여 json속에 들어있는 데이터들을 확인해볼 수 있다.

메타데이터

조회수
810
좋아요
0

0개의 댓글

등록된 댓글이 없습니다.