Saudações. Estou fazendo a imersão Java e travei na seguinte dúvida. Quando executo o código abaixo com a URI "uri(URI.create("https://api.themoviedb.org/3/movie/110?api_key=minhachaveOK"))" que retorna somente um filme, consigo ler o json de retorno e printar os campos que especifiquei na classe Filmes sem problemas. Quando tento a mesma operação consultando uma lista de filmes ".uri(URI.create("https://api.themoviedb.org/3/movie/now_playing"))", recebo null.
Como devo proceder para printar os filmes retornados? Sendo mais específico, como devo tratar o JSON de retorno quando ele tem diversos Filmes? Ao printar "resposta.body()" vejo que o JSON com a lista de filmes "now playing" é retornado ok, não sei como tratar o retorno e imprimir os "titles" retornados, tomo null.
Obrigado desde já!
package javaApi;
class Filmes{
private String title;
private String original_title;
public String getTitle() {
return title;
}
public String getOriginal_title() {
return original_title;
}
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import com.fasterxml.jackson.databind.*;
public class SimpleTesting{
public static void main(String[] args) throws InterruptedException{
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
try {
HttpClient cliente = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.themoviedb.org/3/movie/now_playing"))
.header("accept", "application/json")
.header("Authorization", "Bearer meuTOKENOK")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> resposta = cliente.send(request,BodyHandlers.ofString());
Filmes filme = mapper.readValue(resposta.body(), Filmes.class);
System.out.println("Title: "+ filme.getTitle());
System.out.println("Original Title: "+ filme.getOriginal_title());
}catch(IOException e) {
e.printStackTrace();
}
}
}
Saida do console:
Title: null
Original Title: null