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

Jackson中PropertyNamingStrategy.SNAKE_CASE弃用后的替代方案咨询

Jackson 2.13+ 替代弃用属性命名策略的实现方法

Jackson 2.13版本起,原PropertyNamingStrategy类下的命名策略实现(如SnakeCaseStrategy、SNAKE_CASE常量)已被弃用,官方推荐使用PropertyNamingStrategies类下的对应替代方案,具体实现如下:

类级别注解方式

通过@JsonNaming注解指定命名策略,替换原注解中的旧策略类:

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

// 方式1:使用策略类
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class User {
    private String userName;
    private Integer userAge;
    
    // getter、setter 方法省略
}

// 方式2:使用预定义的常量枚举
@JsonNaming(value = PropertyNamingStrategies.SNAKE_CASE)
public class User {
    // 属性及方法省略
}

全局ObjectMapper配置方式

修改ObjectMapper的命名策略配置,替换为PropertyNamingStrategies下的实现:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;

ObjectMapper objectMapper = new ObjectMapper();

// 方式1:使用策略类
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategies.SnakeCaseStrategy.class);

// 方式2:使用预定义的常量枚举
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);

核心变化仅为导入包的切换:从com.fasterxml.jackson.databind.PropertyNamingStrategy改为com.fasterxml.jackson.databind.PropertyNamingStrategies,原有逻辑无需大幅调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:40:24