2
respostas

o codigo so resulta null quando "lista" os itens

eu nao sei oq pode ser List temporadas = new ArrayList<>();

    for (int i = 1; i <= dados.totalTemporadas(); i++) {
        json = consumoAPI.obterDados("https://www.omdbapi.com/?t=gilmore+girls&season=" + i + "&apikey=6585022c");
        DadosTemporadas dadosTemporada = conversor.obterDados(json, DadosTemporadas.class);
      temporadas.add(dadosTemporada);
    }
   temporadas.forEach(System.out::println);

}

} @JsonIgnoreProperties(ignoreUnknown = true) public record DadosTemporadas(@JsonAlias("Seasons") Integer numero, @JsonAlias("Episode") List episodios ) { @JsonIgnoreProperties(ignoreUnknown = true) public record DadosSerie(@JsonAlias("Title") String titulo, @JsonAlias("totalSeasons") Integer totalTemporadas, @JsonAlias("imdbRating") String avaliacao) { }

2 respostas

Oi Jamile! Tudo bem?

Parece que o problema está na forma como você está mapeando os dados do JSON para a sua classe DadosTemporadas. No seu código, você está usando @JsonAlias("Seasons") e @JsonAlias("Episode"), mas o mapeamento correto é @JsonAlias("Season") e @JsonAlias("Episodes").

Tenta trocar o seu código para ficar assim:

@JsonIgnoreProperties(ignoreUnknown = true)
public record DadosTemporadas(@JsonAlias("Season") Integer numero,
                             @JsonAlias("Episodes") List<DadosEpisodios> episodios
                              ) { 

Dessa forma, o mapeamento entre a classe e o json estará correto, e não ficará mais nulo.

Espero ter ajudado e bons estudos! Qualquer dúvida, estou por aqui. :)

Iasmin foi cirúrgica.

Não sou professor mas sei que respondendo, naquilo que consigo, aprendo também.

No seu código está

@JsonAlias("Episode") List episodios ) 

Porém, acredito, que você não tipificou o List<> que no caso seria DadosEpisodios. Logo, o código correto ficaria

@JsonAlias("Episodes") List<DadosEpisodios> episodios

assim como informado pela prof.

Espero ter contribuído...vlw.