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

时间:2015-11-11 20:08:29

标签: java json hibernate

在尝试使用JSON-ify对象时,我得到了以下异常:

java.lang.RuntimeException:com.fasterxml.jackson.databind.JsonMappingException:没有为类org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer找到序列化程序,也没有发现创建BeanSerializer的属性(为了避免异常,请禁用SerializationFeature。 FAIL_ON_EMPTY_BEANS))

我在其他帖子中阅读了这个例外情况,我想我需要在其中一个课程中使用View.OnClickListener。但我无法理解问题是什么,我应该注释哪个课程。有人可以向我解释一下吗?

2 个答案:

答案 0 :(得分:1)

这是因为hibernate arquitecture,如spring,hibernate使用代理服务对象,而使用javassist,arquitecture用hibernate核心所需的一些东西来装饰对象,并且对你的'用户'代码是“透明的”。杰克逊BeanSerializer可以看到这些东西,并尝试转换它们,他不能。

答案 1 :(得分:0)

我遇到了同样的问题。我使用

解决了
objectMapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);

默认情况下,杰克逊将仅使用公共字段或具有公共getter方法的字段。对具有所有私有字段或包私有字段的实体进行序列化将失败。

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

objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);