我有以下 JSON
{
"success": true,
"timestamp": 1519296206,
"base": "USD",
"date": "2021-03-17",
"rates": {
"GBP": 0.72007,
"JPY": 107.346001,
"EUR": 0.813399,
}
}
如何将其序列化为java对象?我已经创建了该对象:
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class CurrencyExchangeRateResponse {
private Boolean success;
private Boolean historical;
private String date;
private long timestamp;
private String base;
private List<Rate> rates;
}
public enum Currency {
AUD,
GBP,
HKD,
// Other currency codes
}
@Getter
@Setter
public class Rate {
private Currency currency;
private Double value;
}
但是在反序列化过程中出现以下错误:
Caused by: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.util.ArrayList<com.ceg.platform.currency.impl.Rate>` from Object value (token `JsonToken.START_OBJECT`)
从上面的错误可以看出,导致错误的部分是:
"rates": {
"GBP": 0.72007,
"JPY": 107.346001,
"EUR": 0.813399,
}
原因很简单,json rates 是对象,而不是数组