получение данных из imdb - PullRequest
       1

получение данных из imdb

1 голос
/ 30 января 2011

Я пытаюсь получить данные из imdb в as3.Я попробовал следующее:

         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);
    }

Теперь, если я отслеживаю результатXML, я получаю:

{"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 но это не дает никакого результата.

Кто-нибудь знает, как я могу получить рейтинг?

1 Ответ

4 голосов
/ 30 января 2011

Этот ответ не является 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(resultXML.movie.@rating);
        }
    }   
}

Если вы хотите использовать JSON, вам потребуется способ его декодирования. Я предлагаю использовать as3corelib - библиотеку, полную полезных вспомогательных классов, включая кодер / декодер JSON.

Если бы вы использовали это, вы бы просто сделали

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

что похоже на то, что у вас уже есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...