2011-01-30 120 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); 

这类似于你已经拥有。