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

Jackson UnrecognisedPropertyException问题:JSON转Java对象失败求助

解决Jackson ObjectMapper反序列化的UnrecognisedPropertyException问题

我来帮你捋清楚这个问题的来龙去脉,以及对应的解决办法~

首先得明白为什么Spring控制器里能正常转换,但自己直接用ObjectMapper就报错:Spring MVC默认已经给它用的ObjectMapper做了一系列配置,比如忽略未知属性、支持驼峰与下划线命名转换等,而你手动new出来的ObjectMapper是Jackson的默认严格配置,所以会抛出这个异常。

下面分几种情况给出解决方案:

1. 最常见原因:开启忽略未知属性

如果你的JSON数据里包含了实体类中未定义的字段,默认的ObjectMapper会直接报错。只需手动关闭这个严格校验:

ObjectMapper objectMapper = new ObjectMapper();
// 关闭未知属性报错的配置
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// 执行反序列化操作
LocationCustomDataItem item = objectMapper.readValue(jsonString, LocationCustomDataItem.class);

2. 字段名匹配问题

如果JSON里的locationCustomDataAttributes字段和你的实体类命名风格不一致(比如JSON是下划线分隔location_custom_data_attributes,实体类是驼峰命名),Spring的ObjectMapper默认已经处理了这种转换,但你自己的ObjectMapper没有。可以用两种方式解决:

方式一:用@JsonProperty注解指定字段名

在LocationCustomDataItem类的对应字段上添加注解,明确绑定JSON中的字段名:

public class LocationCustomDataItem {
    @JsonProperty("locationCustomDataAttributes")
    private LocationCustomDataAttributes locationCustomDataAttributes;

    // 别忘了添加对应的getter和setter方法,Jackson默认依赖这些方法完成序列化/反序列化
    public LocationCustomDataAttributes getLocationCustomDataAttributes() {
        return locationCustomDataAttributes;
    }

    public void setLocationCustomDataAttributes(LocationCustomDataAttributes locationCustomDataAttributes) {
        this.locationCustomDataAttributes = locationCustomDataAttributes;
    }
}

方式二:全局配置命名策略

给你的ObjectMapper设置命名策略,让它自动处理驼峰与下划线的转换:

ObjectMapper objectMapper = new ObjectMapper();
// 若JSON是下划线命名、实体类是驼峰,用这个策略
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);

3. 直接复用Spring的ObjectMapper

如果你是在Spring项目里,最简单的方式就是直接注入Spring已经配置好的ObjectMapper实例,这样它的行为就和控制器里完全一致:

@Autowired
private ObjectMapper objectMapper;

// 直接用这个实例执行反序列化即可

最后检查一个细节

确保你的LocationCustomDataAttributes是标准POJO:有无参构造器,所有需要反序列化的字段都有对应的getter和setter方法——Jackson需要这些来正确实例化和赋值对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:23:34