JSON转换问题
a实体类private class A{
private Integer id;
private String xxx;
private B b; // 这是B实体
}
b实体类
@JsonIgnoreProperties( { "bDetail" })
private class B{
private Integer id;
private String xxx;
Set<BDetail> bDetail= new HashSet<BDetail>();// 这是B实体明细一对多
}
Bdetail的实体应该可以不用模拟了。
以上省略很多东西,纯属模拟情形。
我在查询A实体的时候,转换为json报错了,报的错是指向B实体的,
只要删除B实体里的set则可以这是怎么回事啊,明明已经用注解去掉了啊。 JSON --------------------编程问答-------------------- --------------------编程问答-------------------- 肯定啊,内存溢出了,因为他们之间的关系是双向的,,导致程序一直去重复取数据,
比如:a.getBs() 取到b的集合,然后每一个b又可以b.getA() 。。。。
这就是一个死循环,,,
解决方案就是 设置a为 root节点,就不会继续往下取数据。。
比如:
@Action(value = "siteVisit", results = { @Result(name = "success", type = "json", params = { "root", "count" }) }) --------------------编程问答--------------------
------------------------------------------------------------------------------------
就是B没有A我才纳闷,A有B,B有BDetail。 --------------------编程问答--------------------
那BDetail里面有哪些关联关系呢???肯定是有死循环的。。。 --------------------编程问答-------------------- 还没解决?,晚上发给我试试 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 用google 的插件 Gson 转值很方便。
补充:Java , Java EE