java 循环 序列化,在Java中的Json序列化期间如何避免无限循环

I retrieve a list of Brothers using hibernate

public class Brother {

public int brotherId;

public string name;

public List brothers;

public Brother()

{

brothers = new ArrayList();

}

//Getter Setter

}

Hibernate is configured using lazy select in brothers list, this in Java side works,

But the problem is when I want to serialize a Brother object to JSON.

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

for Example Bryan can have Mark as brother an viceversa...

How I can solve it? is there any way to indicate max number of recursion to jackson libraries?

my code, it is really simple.

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

ObjectMapper mapper = new ObjectMapper();

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

解决方案

Issue is arising because of Circular Reference.

Since Jackson 1.6 you can use two annotations to solve the infinite

recursion problem without ignoring the getters/setters during

serialization: @JsonManagedReference and @JsonBackReference.

refer here for more

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值