跪求高手 使用Gson将List转为Json的时候出错

a395885670 2012-04-01 09:54:16

public void getNews() throws Exception{
List<News> nList = newsService.findNewsByTime();
Gson gson = new Gson();
gson.toJson(nList);
}


java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
com.google.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:62)
com.google.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:59)
com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
。。。。。
...全文
1747 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
松月 2014-06-12
  • 打赏
  • 举报
回复
楼上正解,难怪作死的转不过来呢!
jiasheng2017 2012-05-07
  • 打赏
  • 举报
回复
你的用 hibernate 吧,你要查询的那个实体类中肯定有一对多的关系,hibernate 默认是使用的延迟加载,不会查出多的那一方,而是返回一个代理,只有实际使用的时候才会去查。所以你查出来的对象里面有代理,Gson 识别不了。
MiceRice 2012-04-01
  • 打赏
  • 举报
回复
要序列化的东西,不是一个单纯的值对象,而是Hibernate的代理类。所以它不知道怎么处理 HibernateProxy 这个类。

可以自行在gson上实现一个针对HibernateProxy类型的处理器。

不过还是检查下为啥你返回的List元素News到底只是个啥吧?
ichenfang163 2012-04-01
  • 打赏
  • 举报
回复
等高手
a395885670 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

要序列化的东西,不是一个单纯的值对象,而是Hibernate的代理类。所以它不知道怎么处理 HibernateProxy 这个类。

可以自行在gson上实现一个针对HibernateProxy类型的处理器。

不过还是检查下为啥你返回的List元素News到底只是个啥吧?
[/Quote]

昨晚加今天半天 。。。还是没弄出来 果断放弃 换session =。=
蘑菇頭 2012-04-01
  • 打赏
  • 举报
回复
帮顶…… JSON 好久没用啦, 都忘记了, 来看看……

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧