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
相关产品推荐
相关产品推荐

