Então, eu tenho essa dados JSON que está no formato RAW. Ele simplesmente denota os atuais covid-19 registros em todo o mundo dia a dia. Eu preciso enviar uma solicitação GET para ele e exibir os dados no navegador usando Primavera de inicialização. Eu tentei getForObject(url, class)
método, mas deu um erro com uma mensagem no suitable HttpMessageConverter found for response type
. Eu tentei resolvê-lo, mas não podia. Então eu tentei o ObjectMapper.readValue(url, class)
método com o URL de JSON de dados e Covid19.class
. Desta vez, eu recebo um erro com uma mensagem no protocol
. A seguir é a estrutura do projeto:
Covid19.java:
public class Covid19 implements Serializable {
private final String country;
public Covid19(String country){
this.country = country;
}
public String getCountry(){
return country;
}
}
Covid19Controller.java:
@RestController
public class Covid19Controller {
@GetMapping(value = "/covid", produces = MediaType.APPLICATION_JSON_VALUE)
public Covid19 covid19() throws IOException {
URL url = new URL("raw.githubusercontent.com/pomber/covid19/master/docs/timeseries.json");
Covid19 covid19 = new ObjectMapper().readValue(url, Covid19.class);
return covid19;
}
classe principal:
public static void main(String[] args) {
SpringApplication.run(DataminingWebserviceApplication.class, args);
}
Na verdade o meu objetivo era enviar uma solicitação GET com o parâmetro country
, mas preso no início. Eu comecei a estudar Primavera Bota ontem e tentando aprender. Há uma abundância de tutoriais mas nenhum se encaixa meu caso tão bem. Desde já, obrigado.
A classe que você definiu não é correto, criar uma classe como este
@JsonIgnoreProperties(ignoreUnknown = true)
public class Covid19{
private int confirmed;
private int deaths;
....
// add other fields and Getters & Setters
}
E o código para ler os dados deve ser semelhante a este
URL url = new URL("https://raw.githubusercontent.com/pomber/covid19/master/docs/timeseries.json");
final Map<String, List<Covid19>> covid19Map= new ObjectMapper().readValue(url, new TypeReference<Map<String, List<Covid19>>>() {});
covid19Map terá a chave como país e do valus como data lista sábio como indicado no json