[英]How to deserialize Json string from Kafka topic in spring boot
我创建了一个 POJO 来映射从 Kafka 主题收到的有效负载。 如果有效负载的格式为:
{"payload":{"name":notification,"key":"2637","message":"This is a notif"}
当我生成此 JSON 字符串类型的消息时。
"{\"payload\":{\"name\":\"notification\",\"key\":\"2637\",\"message\":\"This is a notif\"}"
它在扔
无法读取 JSON:无法构造 myfilename 的实例:没有从字符串值反序列化的带刺参数构造函数/工厂方法。
如何解决?
如果消息只是一个表示转义 JSON 的字符串,我认为您只需要使用 StringDeserializer,并将消息作为字符串处理。 我认为您不能自动绑定到 POJO,因为它不是实际的 JSON 对象。
您可以编写自定义反序列化器来转换字符串,然后委托给 ObjectMapper。
您的问题可能可以通过在映射器中使用以下设置来解决:
mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
另外,如果您已经在使用spring-kafka
,则可以使用默认的JsonDesrializer
或自定义反序列化器。
consumerProps.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonDeserializer.class);
更多文档可在spring 文档中找到
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.