You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot解析JSON时抛出MismatchedInputException异常问题求助

问题1:RestTemplate反序列化类型指定错误

你要反序列化的JSON根节点是数组类型,但调用getForObject时第二个参数传了Info.class,相当于要求RestTemplate把JSON数组转换成单个Info对象,类型完全不匹配,这是抛出异常的核心原因。
正确写法需要用ParameterizedTypeReference指定泛型的List类型:

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

问题2:实体类Getter方法返回类型不匹配

你定义的number属性是double基础类型,但对应的getNumber()方法返回值写的是Object,Jackson反序列化时会根据Getter/Setter匹配字段,此处类型不一致会导致反序列化失败,修改Getter返回值即可:

public double getNumber() {
    return number;
}

可选兼容配置

你JSON里的number字段是字符串格式的数值(带双引号),如果Jackson默认没有开启字符串转数字配置,也会报类型不匹配,两种解决方式可选:

  • 方式1:在number属性上加@JsonFormat(shape = JsonFormat.Shape.STRING)注解
  • 方式2:全局配置Jackson反序列化规则,开启DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT配置项,也可以直接把实体类的number改成String类型后续自行转换。

可选检查点

如果接口返回的JSON存在实体类未定义的额外字段,@JsonIgnoreProperties需要配置ignoreUnknown = true避免报错:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Info {
// 其余代码
}

内容的提问来源于stack exchange,提问作者iraquois

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:18:03