![](/img/trans.png)
[英]Webclient + Jackson: how to setup deserialization to convert snake_case into camelCase?
[英]SpringBoot: How to convert snake case to camelCase
我在一个项目中,我们通过 Java(1.8 LTS)和 Kafka 通过 Spring Cloud Stream 使用 SpringBoot。 我通过云 stream 得到一个事件,我坚持到 mongoDB。
我的StreamListener
看起来像这样:
@StreamListener(MessagingChannels.BLA_CHANNEL)
public void onIncomingEvent(
EventContent eventContent,
@Header(name = uuid) UUID messageId
) {
doStuffWith(eventContent);
}
EventContent
如下所示:
@ToString
@AllArgsConstructor
@Getter
@JsonNaming
public class EventContent {
private final String dataString1;
private final String dataString2;
...
private final Object details;
}
我的问题是,细节 object 可能会有所不同,生产者可能会有其他键/值对。 一些生产者以snake_case 发送他们的数据,但我想将其始终保存在camelCase 中。 所以@JsonNaming
做得很好,但遗憾的是不能传递细节 object。
这里容错很重要,所以如果这里出现问题,应该将其发送到 DLQ。
有人知道我是怎么做到的吗? 也许有一个 spring 魔术注释的简单方法,我不知道 - spring 的新手:)
非常感谢!!
您应该配置两个不同的 objectMapper:一个用于带有 objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE) 的 Kafka,另一个用于不带此选项的 MongoDB。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.