as3 json使用

來源:互聯網
上載者:User

最近發現有不少通過“AS3 json”關鍵詞搜尋過來的朋友,可見還是有很多朋友對這方面關注的。不過現下有關AS3 JSON的文章是少之又少,網上搜尋到的基本上也都是那同樣的幾篇文章轉來轉去罷了,也包括我之前那篇,也沒什麼例子。相信會讓很多初學的朋友看得雲裡霧裡的,其實我也覺得奇怪,json其實也算蠻簡單的,怎麼就沒人寫篇好的教程呢。廢話就不多說了,希望轉載的朋友能註明一下出處,謝了。

首先,你需要有一個JSON的類庫,建議去下載adobe官方提供的產品外類庫:as3corelib。類庫的使用就不多說了,大家應該都知道。

先說說擷取資料。可以這麼說,只要你懂AS3與XML的互動,那麼就一定能懂JSON,因為兩者幾乎是一樣的,你唯一需要做的只是瞭解一下JSON 的格式。例如下面這個JSON的例子,就像XML一樣,你可以通過任何動態網頁面來產生這個格式,也可以通過靜態甚至TXT來讀取也行。

[{"name":"Hans","age":"32"},
{"name":"John","age":"12"},
{"name":"Zaki","age":"34"},
{"name":"Dr. Cox","age":"88"}]

package {
 import com.adobe.serialization.json.JSON;
 
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.net.URLLoader;
 import flash.net.URLRequest;
 
 public class getJSON extends Sprite {
  public function getJSON() {
   var loader:URLLoader = new URLLoader();
 
   loader.load(new URLRequest( "http://127.0.0.1/json.php" ));//這裡是你要擷取JSON的路徑
   loader.addEventListener(Event.COMPLETE, decodeJSON);
  }
  private function decodeJSON(evt:Event):void {
   var persons:Array = JSON.decode( URLLoader( evt.target ).data );
   //在這裡,就可以通過運算元組來應用資料了,很方便
   for (var i=0; i<persons.length; i++) {
    trace( persons[i].name );
   }
  }
 }
}

發送資料的代碼如下:
package {
 import com.adobe.serialization.json.JSON;
 
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.net.*;
 
 public class sendJSON extends Sprite {
  public function sendJSON() {
   var arr : Array = new Array({"name":"Hans","age":"32"},{"name":"John","age":"12"},{"name":"Zaki","age":"34"},{"name":"Dr. Cox","age":"88"});//這裡是要發送的資料,可以直接寫,也可以是由其他方法產生,不過要注意格式。
   sendjson( arr );
  }
  private function sendjson( a : Array ):void {
   var jsonString : String = JSON.encode(a);
 
   var urlVariables:URLVariables = new URLVariables();
   urlVariables.json = jsonString;
 
   var urlRequest:URLRequest = new URLRequest(http://127.0.0.1/json.php); //這裡是接收資料的動態網頁。
   urlRequest.method = URLRequestMethod.POST;
   urlRequest.data = urlVariables;
 
   //其實到這已經結束了,下面的XML只是測試結果而已。
   var urlLoader:URLLoader = new URLLoader();
   urlLoader.addEventListener(Event.COMPLETE, onURLLoaderCompleteEvent);
   urlLoader.load(urlRequest);
  }
  private function onURLLoaderCompleteEvent( evt : Event ):void {
   var xml:XML = new XML(evt.target.data);
   trace(xml);
  }
 }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.