簡體   English   中英

如何解決com.fasterxml.jackson.databind.JsonMappingException?

[英]How to solve the com.fasterxml.jackson.databind.JsonMappingException?

嘗試對對象進行JSON修飾時,出現以下異常:

java.lang.RuntimeException:com.fasterxml.jackson.databind.JsonMappingException:未找到類org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer的序列化器,也未發現創建BeanSerializer的屬性(為避免異常,請禁用SerializationFeature.FAIL_ON_EMPTY_BEANS)

我在其他帖子中讀到了有關此異常的信息,我認為我需要在我的一個課程中使用@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) 但是我不明白問題是什么,我應該注釋哪個班級。 有人可以向我解釋嗎?

造成這種情況的原因是,像spring一樣,hibernate的arquitecture會使用代理來服務對象,而javassist的arquitecture會使用hibernate核心所需的某些東西來裝飾對象,這些東西對於您的“用戶”代碼是“透明的”。 Jackson BeanSerializer可以看到這些內容並嘗試將其轉換,但他不能。

我遇到了同樣的問題。 我通過使用解決了

objectMapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);

默認情況下,Jackson僅適用於公共字段或具有公共getter方法的字段,序列化具有所有私有字段或私有包的實體將失敗。

您可以通過以下方式禁用序列化

objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM