杰克逊克服强调支持骆驼案

2022-08-31 06:21:04

我从互联网上检索一个JSON字符串;像我见过的大多数JSON一样,它包括由下划线分隔的长键。从本质上讲,我的目标是将JSON反序列化为java对象,但我在java代码中不使用下划线。

例如,我可能有一个类,其中字段在驼峰大小写中,同时我需要以某种方式告诉Jackson将键从JSON映射到类字段。可能吗?UserfirstNamefirst_namefirstName

class User{
    protected String firstName;
    protected String getFirstName(){return firstName;}
}

答案 1

您可以配置 将驼峰大小写转换为带有下划线的名称:ObjectMapper

objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);

或者使用以下注释注释特定的模型类:

@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)

在 Jackson 2.7 之前,常量被命名为:

PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES

答案 2

如果它是一个弹簧引导应用程序,在应用程序.属性文件中,只需使用

spring.jackson.property-nameing-strategy=SNAKE_CASE

或者使用此批注为模型类添加批注。

@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)


推荐