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

标签 java json hibernate

尝试对对象进行 JSON 化时出现以下异常:

java.lang.RuntimeException: com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) )

我在其他帖子中读到了有关此异常的信息,我认为我需要在我的一个类中使用 @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) 。但我不明白问题是什么以及我应该注释哪个类。有人能给我解释一下吗?

最佳答案

这是因为 hibernate 架构与 spring 一样,hibernate 使用代理来服务对象,并且通过 javassist,架构用 hibernate 核心所需的一些东西来装饰对象,并且对“用户”代码来说是“透明”的。 Jackson BeanSerializer 可以看到这些内容并尝试转换它们,但他做不到。

关于java - 如何解决com.fasterxml.jackson.databind.JsonMappingException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33658963/

相关文章:

java - 如何解决 "Invalid character found in the HTTP protocol [HTTP/1.10x0aHost:]"?

javascript - Javascript如何使用Fetch API跨域加载文本或JSON数据?

java - 将 SQLite 数据设置为 JsonObject 类,而不使用 Stringbuilder

java - Spring 3 注入(inject) Hibernate Session 的最佳方法

java - 如何将 jar 文件包含到 Oracle 中的 Java 存储过程中?

java - ArrayList 的 add(index,object) 方法抛出 IndexOutOfBoundException

java - JMX 的轻量级、多语言替代品?

javascript - JavaScript 中的.text 冲突

java - java中如何从父类对象加载子对象

java - 如何在 Hibernate ORM 中将 "lo"别名为 "oid"?