3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
用于解決無限遞歸(StackOverflowError)
@JsonIgnore并不是為了解決無限遞歸問題而設(shè)計(jì)的,它只是忽略了帶注釋的屬性被序列化或反序列化。但是,如果字段之間存在雙向鏈接,則由于會@JsonIgnore忽略帶注釋的屬性,因此可以避免無限遞歸。
在另一方面,@JsonManagedReference和@JsonBackReference旨在處理領(lǐng)域之間的雙向聯(lián)動(dòng),一個(gè)家長的角色,另一個(gè)用于兒童分別作用:
為避免此問題,應(yīng)處理鏈接,以使對帶@JsonManagedReference注釋的屬性進(jìn)行正常處理(正常序列化,無需反序列化的特殊處理),并且對帶@JsonBackReference注釋的屬性不進(jìn)行序列化。在反序列化期間,其值設(shè)置為具有“托管”(轉(zhuǎn)發(fā))鏈接的實(shí)例。
回顧一下,如果您在序列化或反序列化過程中不需要這些屬性,可以使用@JsonIgnore。否則,使用@JsonManagedReference/ @JsonBackReference對是可行的方法。

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
我在這里有一個(gè)類似的問題,在這里我需要解析遞歸字段,看起來也許我需要使用@JsonManagedReference
但不確定它會如何工作?我嘗試使用JsonManagedReference
,JsonBackReference
但似乎不起作用,每次遇到異常時(shí),我都想看看您是否可以幫助我。
添加回答
舉報(bào)