[英]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.