2011-01-30 118 views
1

我試圖從imdb獲取數據到as3。我試過如下:從imdb獲取數據

  var urlLoader:URLLoader = new URLLoader(); 
    urlLoader.addEventListener(Event.COMPLETE, urlCompleteHandler); 
    urlLoader.load(new URLRequest("http://www.imdbapi.com/?t=The+Green+Mile ")); 

    private function urlCompleteHandler(e:Event):void { 

     var resultXML:XML = new XML(e.target.data); 
     trace(resultXML); 
    } 

現在,如果我跟蹤resultXML我得到:

{"Title":"The Green Mile","Year":"1999","Rated":"R","Released":"10 Dec 1999","Genre":"Crime, Drama, Fantasy, Mystery","Director":"Frank Darabont","Writer":"Stephen King, Frank Darabont","Actors":"Tom Hanks, Michael Clarke Duncan, David Morse, Bonnie Hunt","Plot":"The story about the lives of guards on death row leading up to the execution of black man accused of child murder & rape, who has the power of faith healing.","Poster":"http://ia.media-imdb.com/images/M/MV5BMTUxMzQyNjA5MF5BMl5BanBnXkFtZTYwOTU2NTY3._V1._SX320.jpg","Runtime":"3 hrs 9 mins","Rating":"8.4","Votes":"214654","ID":"tt0120689","Response":"True"} 

現在我試圖從這個結果得到了「等級」,但我不知道如何得到它。

我試過了:resultXML.Rating但這不會返回任何結果。

任何knw如何我可以得到評級?

回答

4

該響應不是XML,它是JSON。如果您希望XML將r=xml添加到您的查詢字符串中。

package { 

    import flash.display.MovieClip; 
    import flash.net.*; 
    import flash.events.Event; 


    public class IMDB extends MovieClip { 

     var urlLoader:URLLoader; 

     public function IMDB() { 
      // constructor code 

      urlLoader = new URLLoader(); 
      urlLoader.addEventListener(Event.COMPLETE, urlCompleteHandler); 
      urlLoader.load(new URLRequest("http://www.imdbapi.com/?t=The+Green+Mile&r=xml")); 
     } 

    private function urlCompleteHandler(e:Event):void { 
      var resultXML:XML = new XML(e.target.data); 
      trace([email protected]); 
     } 
    } 
} 

如果您想使用JSON,那麼您需要一種解碼方法。我建議使用as3corelib這是一個充滿有用的助手類的庫,包括一個JSON編碼器/解碼器。

如果你使用,你會只是做

var movieObj:Object = JSON.decode(e.target.data); 
trace(movieObj.Rating); 

這類似於你已經擁有。