java - 无法反序列化来自具有蛇形属性的 kafka 主题的 json 字符串

标签 java json apache-kafka deserialization

我无法反序列化来自 kafka 主题的 json 字符串。 属性混合使用蛇形命名法和驼峰命名法结构,例如: 输入:

{
"event_type" : "ABC",
"user_id" : 1567221,
"name" : "HGHAAAB" //here no snake case
"user_contact" : "12345678",
"phoneNumber" : "91222"
} 

现在我想在我这边创建 Request DTO,如下所示:

public class KafkaRequest { 
private String eventType;
private int userId;
private String name; 
private String userContact;
private String phoneNumber;

//getters and setters

} 

任何人都可以建议什么是正确的方法吗?我尝试创建 CustomNameStrategy 并使用 ObjectMapper.readValue() 进行反序列化,但它不起作用。

先谢谢了!!!

最佳答案

如果您使用的是jackson,您可以使用@JsonProperty 6.1. @JsonProperty

@JsonProperty("event_type")
private String eventType;

或者您可以设置属性 PropertyNamingStrategy.SNAKE_CASEObjectMapper

objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);

关于java - 无法反序列化来自具有蛇形属性的 kafka 主题的 json 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58533947/

相关文章:

java - 设计/代码问题 - 来自 Apress 关于 Spring 的书

python - 在 Python 中为 Alexa 技能添加 session 属性

MYSQL 在数组数据集中查找

javascript - 使用 list.js 排序/搜索时列表项消失

java - Camel 卡夫卡集成

scala - 为什么使用 Kafka 的 Spark Streaming 应用程序失败并显示 "ClassNotFoundException: org.apache.spark.streaming.kafka.KafkaRDDPartition"?

java - BlueJ - 我的程序编译没有错误但没有运行

java - 我试图在屏幕上显示 CountDownTimer,但在 logcat 中得到 "Only one looper can be created per thread"

java - 从文本文件实例化一个类

apache-kafka - Windows上的Apache Kafka错误-无法找到或加载主类QuorumPeerMain