MismatchedInputException 错误解析 Json

MismatchedInputException error Parsing Json

在 spring 引导中,我在尝试解析此 json

时收到 MismatchedInputException 错误
[
 {
"name": "abcd",
"number": "0.11258868"
 },
 {
"name": "try",
"number": "1.155866887"
 },
 {
"name": "test",
"number": "0.123444"
 }
]

我的 class 是:

@JsonIgnoreProperties
public class Info {
private String name;
private double number;

public String getName()
{
    return name;
}

public void setName(String name)
{
    this.name = name;
}

public Object getNumber() {
    return number;
}

public void setNumber(double number)
{
    this.number= number;
}

映射代码就是这样:

@GetMapping
public String setInfo()
{
    var info= (List<Info>)m_restTemplate.getForObject(url, Info.class);

    return "test";
}

我知道这是非常简单的代码,但我找不到解决方案。什么与 class 不匹配?

问题出在检索部分。您得到的是 Info 的列表,但您是在对 Spring RestTemplate 说它将得到一个 Info。尝试以下操作:

@GetMapping
public String setInfo() {
    var info = m_restTemplate.exchange(url, HttpMethod.GET, null, 
        new ParameterizedTypeReference<List<Info>>() {}).getBody();

    return "test";
}