Flash與JSON的使用



公司這邊因為資料傳輸的需求,使用了JSON格式,雖然在這邊我主力不是寫成是,但因為團隊裡我對AS最熟,所以有機會研究一下用JSON傳輸資料的方式,感覺很好玩,這邊稍微提一下該怎麼做。

首先不了解JSON的可以來看一下:
JavaScript Object Notation
JSON

因為要解析JSON格是需要用到as3corelib的class,所以如果還沒下載的,記得去下載一下。
as3corelib

設置好了把他import到你的flash檔裡
import com.adobe.serialization.json.JSON;
一般JSON的格式大概會镸這樣:
{ 'obj1': {
'child1':'value1',
'child2':'value2'
},
'array1': [1, 2, 3, 4, 5]
};

只要照這個格式,就可以把他解析成我們要的資料了。
var serverJSON:String='{ "programmers": [{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }],"authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }],"musicians": [{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }]}'
var json:Object = new Object();
json = JSON.decode(serverJSON);
trace(json.programmers[0].firstName);//輸出: Brett

很方便吧,如果想把所有的資料都抓出來,可以使用迴圈的方式,用這個json.firstName.length去偵測物件的數量。

而如果要送出json格式的話,則可以這樣做。
var myJson:Object = new Object();
myJson.ab = "adfsdf";
myJson.cd = "12345";
trace(JSON.encode( myJson));//輸出:{"ab":"adfsdf","cd":"12345"}

理論是這樣,還是實作好玩很多,實作的部分就比這邊複雜多了..XD

留言