I'm consuming a REST API using RestTemplate like so
public CoinResponse getExchange(){
List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setSupportedMediaTypes(Collections.singletonList(MediaType.ALL));
messageConverters.add(converter);
restTemplate.setMessageConverters(messageConverters);
return restTemplate.getForObject("https://api.coindesk.com/v1/bpi/currentprice.json", CoinResponse.class);
}
And I'm getting the response as an instance of CoinResponse. Within CoinResponse I can access the BpiObject instance but the EUR, USD and GBP instances are all null. My model looks like this:
public class CoinResponse {
public CoinResponse() {
}
@JsonProperty
Time TimeObject;
@JsonProperty
private String disclaimer;
@JsonProperty
private String chartName;
@JsonProperty
Bpi BpiObject;
// Getters and Setters
}
public class Bpi {
public Bpi() {
}
@JsonProperty
USD USDObject;
@JsonProperty
GBP GBPObject;
@JsonProperty
EUR EURObject;
// Getter and Setters
What am I doing wrong here? What's the correct way of addressing this issue with RestTemplate?
My currency class looks like this:
public class EUR {
public EUR() {
}
@JsonProperty
private String code;
@JsonProperty
private String symbol;
@JsonProperty
private String rate;
@JsonProperty
private String description;
@JsonProperty
private float rate_float;
// Getter and Setters
}
question from:
https://stackoverflow.com/questions/65844179/using-resttemplate-to-retrieve-and-deserialize-json-of-complex-object 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…