小编Fll*_*ppy的帖子

使用构建器时映射到蛇箱

我正在从休息调用接收 json 数据。钥匙都在里面camel case

我可以从其余调用中很好地获取这些数据。但我希望将所有这些密钥转换为snake casecos,这是
我发送回需要我的响应的客户端的版本。

在我的配置中,我有以下内容来映射蛇案例。

@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
    MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
    converter.setObjectMapper(new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
        .setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES));
    return converter;
}
Run Code Online (Sandbox Code Playgroud)

如果我不明确使用@JsonProperty并且坚持使用gettersandsetters而不是builder.
例如,如果我的 bean 以以下格式声明,这将起作用并给我蛇形案例。

@Getter
@Setter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Layout {
    private final String myBanner;
}
Run Code Online (Sandbox Code Playgroud)

@JsonProperty如果我使用构建器但不按如下方式使用,它将无法工作(不会从其余调用中捕获数据) 。

@Getter
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonDeserialize(builder = Layout.LayoutBuilder.class)
public class Layout {
    private final String myBanner;
}
Run Code Online (Sandbox Code Playgroud)

这就是我现在拥有的,可以使用,但是是在骆驼箱中。我想要蛇盒。

@Getter
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonDeserialize(builder = Layout.LayoutBuilder.class)
public class …
Run Code Online (Sandbox Code Playgroud)

java jackson lombok

6
推荐指数
1
解决办法
3731
查看次数

标签 统计

jackson ×1

java ×1

lombok ×1