如何在Java中进行Json序列化时避免无限循环

我使用hibernate方式检索兄弟列表

public class Brother {

public int brotherId;

public string name;

public List<Brother> brothers;

public Brother()

{

brothers = new ArrayList<Brother>();

}

//Getter Setter

}

Hibernate是在兄弟列表中使用惰性选择配置的,在Java端这是可行的,但是问题是当我想将Brother对象序列化为JSON时。

I've got org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError)

例如,布莱恩(Bryan)可以将马克(Mark)当作兄弟,反之亦然…

我该如何解决?有什么办法可以指示对杰克逊库的最大递归次数?

我的代码,真的很简单。

Brother brother = this.myservice.getBrother(4);

ObjectMapper mapper = new ObjectMapper();

System.out.println(mapper.writeValueAsString(brother));

回答:

由于 。

由于Jackson 1.6您可以使用两个批注来解决无限递归问题,而无需在序列化过程中忽略getter / setter:

和 。

以上是 如何在Java中进行Json序列化时避免无限循环 的全部内容, 来源链接: utcz.com/qa/410256.html

回到顶部