Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Tipo de dado

Oi, pessoal! Fiquei na dúvida ao transformarmos o json para 'DadosTemporada' do pq transformamos exatamente em uma lista do tipo 'DadosEpisódio'. Como exatamente essa transformação é realizada? Pois esse dado não vem desta forma do json.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas
solução!

Eai Miguel tudo bem? Então maninho tua record dadosTemporada tem 2 atributos que é o número da temporada e uma lista de epsódios, se você observar a linha 40 da sua classe principal vai notar que essa requisição trás as informações sobre uma determinada temporada de uma série, basicamente a url de request ficaria dessa forma:

http://www.omdbapi.com/?apikey=327d093&t=lucifer&y=2016&Season=1

se você observa o resultado do json seria:

{"Title":"Lucifer","Season":"1","totalSeasons":"6","Episodes":[{"Title":"Pilot","Released":"2016-01-25","Episode":"1","imdbRating":"8.5","imdbID":"tt4932378"},{"Title":"Lucifer, Stay. Good Devil.","Released":"2016-02-01","Episode":"2","imdbRating":"8.0","imdbID":"tt4952848"},{"Title":"The Would-Be Prince of Darkness","Released":"2016-02-08","Episode":"3","imdbRating":"7.9","imdbID":"tt4952852"},{"Title":"Manly Whatnots","Released":"2016-02-15","Episode":"4","imdbRating":"8.3","imdbID":"tt4952842"},{"Title":"Sweet Kicks","Released":"2016-02-22","Episode":"5","imdbRating":"7.8","imdbID":"tt4952846"},{"Title":"Favorite Son","Released":"2016-02-29","Episode":"6","imdbRating":"8.6","imdbID":"tt4952858"},{"Title":"Wingman","Released":"2016-03-07","Episode":"7","imdbRating":"8.5","imdbID":"tt4952850"},{"Title":"Et Tu, Doctor?","Released":"2016-03-14","Episode":"8","imdbRating":"8.0","imdbID":"tt4952854"},{"Title":"A Priest Walks Into a Bar","Released":"2016-03-21","Episode":"9","imdbRating":"8.9","imdbID":"tt4952856"},{"Title":"Pops","Released":"2016-03-28","Episode":"10","imdbRating":"8.1","imdbID":"tt4952862"},{"Title":"St. Lucifer","Released":"2016-04-11","Episode":"11","imdbRating":"8.5","imdbID":"tt4952866"},{"Title":"#TeamLucifer","Released":"2016-04-18","Episode":"12","imdbRating":"8.9","imdbID":"tt4952864"},{"Title":"Take Me Back to Hell","Released":"2016-04-25","Episode":"13","imdbRating":"9.0","imdbID":"tt4952868"}],"Response":"True"}

eai temos o objeto Episodes que é uma lista de Episodíos e o número da temporada representada pelo atributo Season.

espero que tenha conseguido entender, abraços.

Valeu pela explicação chefe!

Fala aí Miguel. Só para complementar a explicacao do colega.

Temos 2 tipos de chamadas a por Título e a por Temporadas.

A primeira refere-se ao títulohttps://www.omdbapi.com/?t=the+big+bang+theory&apikey= (retirei minha chave). Resultando:

{"Title":"The Big Bang Theory","Year":"2007–2019","Rated":"TV-PG","Released":"24 Sep 2007","Runtime":"22 min","Genre":"Comedy, Romance","Director":"N/A","Writer":"Chuck Lorre, Bill Prady","Actors":"Johnny Galecki, Jim Parsons, Kaley Cuoco","Plot":"A woman who moves into an apartment across the hall from two brilliant but socially awkward physicists shows them how little they know about life outside of the laboratory.","Language":"English, Hindi, Italian, Russian, Mandarin, Klingon","Country":"United States","Awards":"Won 10 Primetime Emmys. 79 wins & 254 nominations total","Poster":"https://m.media-amazon.com/images/M/MV5BY2FmZTY5YTktOWRlYy00NmIyLWE0ZmQtZDg2YjlmMzczZDZiXkEyXkFqcGdeQXVyNjg4NzAyOTA@._V1_SX300.jpg","Ratings":[{"Source":"Internet Movie Database","Value":"8.1/10"}],"Metascore":"N/A","imdbRating":"8.1","imdbVotes":"865,373","imdbID":"tt0898266","Type":"series","totalSeasons":"12","Response":"True"}

Já o segundo refere-se a temporada. Precisando,com isso, ser adicionado na url o número da temporada(Season). Exemplo sesason=3

https://www.omdbapi.com/?t=the+big+bang+theory&season=3&apikey=xxxxxx

Resposta:

{"Title":"The Big Bang Theory","Season":"3","totalSeasons":"12","Episodes":[{"Title":"The Electric Can Opener Fluctuation","Released":"2009-09-21","Episode":"1","imdbRating":"8.3","imdbID":"tt1487706"},{"Title":"The Jiminy Conjecture","Released":"2009-09-28","Episode":"2","imdbRating":"7.7","imdbID":"tt1495238"},{"Title":"The Gothowitz Deviation","Released":"2009-10-05","Episode":"3","imdbRating":"8.1","imdbID":"tt1494210"},{"Title":"The Pirate Solution","Released":"2009-10-12","Episode":"4","imdbRating":"8.0","imdbID":"tt1523181"},{"Title":"The Creepy Candy Coating Corollary","Released":"2009-10-19","Episode":"5","imdbRating":"8.3","imdbID":"tt1528188"},{"Title":"The Cornhusker Vortex","Released":"2009-11-02","Episode":"6","imdbRating":"7.4","imdbID":"tt1523180"},{"Title":"The Guitarist Amplification","Released":"2009-11-09","Episode":"7","imdbRating":"7.8","imdbID":"tt1535334"},{"Title":"The Adhesive Duck Deficiency","Released":"2009-11-16","Episode":"8","imdbRating":"8.9","imdbID":"tt1536922"},{"Title":"The Vengeance Formulation","Released":"2009-11-23","Episode":"9","imdbRating":"8.3","imdbID":"tt1544819"},{"Title":"The Gorilla Experiment","Released":"2009-12-07","Episode":"10","imdbRating":"8.4","imdbID":"tt1558529"},{"Title":"The Maternal Congruence","Released":"2009-12-14","Episode":"11","imdbRating":"8.3","imdbID":"tt1558530"},{"Title":"The Psychic Vortex","Released":"2010-01-11","Episode":"12","imdbRating":"8.2","imdbID":"tt1567073"},{"Title":"The Bozeman Reaction","Released":"2010-01-18","Episode":"13","imdbRating":"8.0","imdbID":"tt1570312"},{"Title":"The Einstein Approximation","Released":"2010-02-01","Episode":"14","imdbRating":"8.4","imdbID":"tt1588684"},{"Title":"The Large Hadron Collision","Released":"2010-02-08","Episode":"15","imdbRating":"8.0","imdbID":"tt1589887"},{"Title":"The Excelsior Acquisition","Released":"2010-03-01","Episode":"16","imdbRating":"8.2","imdbID":"tt1592080"},{"Title":"The Precious Fragmentation","Released":"2010-03-08","Episode":"17","imdbRating":"8.4","imdbID":"tt1607974"},{"Title":"The Pants Alternative","Released":"2010-03-22","Episode":"18","imdbRating":"8.4","imdbID":"tt1609715"},{"Title":"The Wheaton Recurrence","Released":"2010-04-12","Episode":"19","imdbRating":"7.8","imdbID":"tt1609410"},{"Title":"The Spaghetti Catalyst","Released":"2010-05-03","Episode":"20","imdbRating":"8.1","imdbID":"tt1628617"},{"Title":"The Plimpton Stimulation","Released":"2010-05-10","Episode":"21","imdbRating":"8.1","imdbID":"tt1648755"},{"Title":"The Staircase Implementation","Released":"2010-05-17","Episode":"22","imdbRating":"9.0","imdbID":"tt1648756"},{"Title":"The Lunar Excitation","Released":"2010-05-24","Episode":"23","imdbRating":"8.6","imdbID":"tt1627740"}],"Response":"True"}

Como a classe dadosSerie já retorna o totalTemporadas então basta fazer um iteração em cima desse total e cada season vai ser adicionado automaticamente com o loop for.

DadosSerie dados = conversor.obterDados(json,DadosSerie.class);
        System.out.println(dados);

        List<DadosTemporada> temporadas = new ArrayList<>();
        for(int i = 1; i<dados.totalTemporadas(); i++){
            json = consumo.obterDados(ENDERECO+nomeSerie.replace(" ","+")+"&season="+i+API_KEY);
            DadosTemporada dadosTemporada = conversor.obterDados(json,DadosTemporada.class);
            temporadas.add(dadosTemporada);
        }
        temporadas.forEach(System.out::println);

Espero ter contribuido de alguma forma...vlw.