JSON (JavaScript Object Notation),是一個輕量型的資料交換格式,在這邊就不做詳細的介紹,有興趣的人可以到wiki去看看。
再開始之前,會需要AS3的JSON code,可以到 Adobe提供的 class libs去下載 ,Link。
以下的範例 是以 PHP 為後台程式處理。
PHP 傳值給 AS:
php result.php
$arr[] = array("name"=>"測試員","age"=>"21"); $arr[] = array("name"=>"測試員1","age"=>"22"); $arr[] = array("name"=>"測試員2","age"=>"23"); $arr[] = array("name"=>"測試員3","age"=>"24"); echo json_encode( $arr );as
import com.adobe.serialization.json.JSON; var request:URLRequest = new URLRequest(); request.url = "result.php"; request.method = URLRequestMethod.POST; request.contentType = URLLoaderDataFormat.TEXT; var myLoader:URLLoader = new URLLoader(); myLoader.addEventListenter(Event.COMPLETE , onLoadCompleted ); myLoader.load( request ); function onLoadCompleted ( e:Event ):void{ var mydata:Array = JSON.decode( e.target.data ); trace( mydata.length ); //output:4 trace( mydata[0].name , mydata[0].age);//output:測試員,21 }
AS 傳送資料給 PHP:
as
import com.adobe.serialization.json.JSON; var myVar:URLVariables = new URLVariables(); var mydata:Array = [{name:"測試者",age:"21"}]; myVar.postData = JSON.encode( mydata ); var request:URLRequest = new URLRequest(); request.url = "echo.php"; request.method = URLRequestMethod.POST; request.data = myVar; navigateToURL( request , "_blank" );php echo.php
$data = $_POST['postData']; $arr = json_decode( $data ); echo "undecode data:".$data;//output: undecode data: [{"age":"21","name":"測試者"}] echo "decode data:" . $arr;//output: decode data:Array echo "data's name:". $$arr[0]->name;//output: data's name:測試者 echo "data's age:". $$arr[0]->age;//output: data's age:21這樣的寫法比起xml是不是變的簡潔了許多,在後台就不用在像使用xml需要宣告一個xml的格式去將資料傳回as中,有興趣的人可以嘗試運用在自己的程式當中。
JSON.decode( e.target.data )
回覆刪除是一個object 無法轉型成Array
會報錯
有試過嗎?