繁体   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