簡體   English   中英

如何在Java中使用Json序列化時避免無限循環

[英]How avoid infinite loop during Json Serialization in Java

我使用hibernate檢索兄弟列表

public class Brother {
    public int brotherId;
    public string name;

    public List<Brother> brothers;

    public Brother()
    {
        brothers = new ArrayList<Brother>();
    }

    //Getter Setter
} 

Hibernate是在兄弟列表中使用lazy select配置的,這在Java端工作,但問題是當我想將一個Brother對象序列化為JSON時。

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

例如布萊恩可以讓馬克作為一個反面的兄弟......

我怎么解決呢? 有沒有辦法表明傑克遜圖書館的最大遞歸數?

我的代碼,很簡單。

Brother brother = this.myservice.getBrother(4);
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(brother));

循環參考而產生問題。

Jackson 1.6您可以使用兩個注釋來解決無限遞歸問題,而不會在序列化期間忽略getter / setter: @JsonManagedReference@JsonBackReference

請參閱此處了解更多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM