我正在从休息调用接收 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)