何時在Java中使用@JsonManagedReference和@JsonBackReference註解使用Jackson?
@JsonManagedReference 和@JsonBackReference 註解可用來在中建立JSON 結構>雙向方式。 @JsonManagedReference 註解是在序列化過程中包含的前向引用,而@JsonBackReference 註解是反向引用,在序列化過程中省略。
在下面的範例中,我們可以實作 @JsonManagedReference 和 @JsonBackReference 註解。
範例
import java.util.*; import com.fasterxml.jackson.annotation.JsonManagedReference; import com.fasterxml.jackson.annotation.JsonBackReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; public class ManagedReferenceBackReferenceTest { public static void main(String args[]) throws JsonProcessingException { BackReferenceBeanTest testBean = new BackReferenceBeanTest(110, "Sai Chaitanya"); ManagedReferenceBeanTest bean = new ManagedReferenceBeanTest(135, "Adithya Ram", testBean); testBean.addEmployees(bean); ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(bean); System.out.println(jsonString); } } class ManagedReferenceBeanTest { public int empId = 115; public String empName = "Raja Ramesh"; @JsonManagedReference public BackReferenceBeanTest manager; public ManagedReferenceBeanTest(int empId, String empName, BackReferenceBeanTest manager) { this.empId = empId; this.empName = empName; this.manager = manager; } } class BackReferenceBeanTest { public int empId = 125; public String empName = "Jai Dev"; @JsonBackReference public List<ManagedReferenceBeanTest> list; public BackReferenceBeanTest(int empId, String empName) { this.empId = empId; this.empName = empName; list = new ArrayList<ManagedReferenceBeanTest>(); } public void addEmployees(ManagedReferenceBeanTest managedReferenceBeanTest) { list.add(managedReferenceBeanTest); } }
輸出
{ "empId" : 135, "empName" : "Adithya Ram", "manager" : { "empId" : 110, "empName" : "Sai Chaitanya" } }
以上是何時在Java中使用@JsonManagedReference和@JsonBackReference註解使用Jackson?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

AJackson 是一個提供了多種不同方式來處理JSON的Java JSONAPI。我們可以使用CsvMapper 類別將CSV資料轉換為JSON數據,它是一個特殊的ObjectMapper,具有擴展功能,可以將POJOs轉換為CsvSchema 實例。我們可以使用 reader() 方法來建構具有預設設定的ObjectReader。為了進行轉換,我們需要導入com.fasterxml.jac

Jackson是一個基於Java的函式庫,它對於將Java物件轉換為JSON以及將JSON轉換為Java物件非常有用。 JacksonAPI比其他API更快,需要更少的記憶體區域,並且適合大型物件。我們使用XmlMapper類別的writeValueAsString()方法將POJO轉換為XML格式,並且需要將對應的POJO實例作為參數傳遞給此方法。語法publicStringwriteValueAsString(Objectvalue)throwsJsonProcessingException範例imp

【漏洞通告】2月19日,NVD發布安全通告揭露了jackson-databind由JNDI注入導致的遠端程式碼執行漏洞(CVE-2020-8840),CVSS評分為9.8。受影響版本的jackson-databind中由於缺少某些xbean-reflect/JNDI黑名單類,如org.apache.xbean.propertyeditor.JndiConverter,可導致攻擊者使用JNDI注入的方式實現遠端程式碼執行。目前廠商已發布新版本完成漏洞修復,請相關用戶及時升級進行防護。由於專案中用到的S

JSONJackson 是Java 函式庫。它具有非常強大的資料綁定功能,並提供了一個框架來將自訂Java 物件序列化為JSON 並將JSON 反序列化回Java 物件。我們也可以使用XmlMapper 的readValue() 方法將XML 格式轉換為POJO 對象

JSONObject可以解析字串中的文字以產生Map類型的物件。枚舉可用於定義常數集合,當我們需要一個不代表某種數字或文字資料的預定義值清單時,我們可以使用枚舉。我們可以使用ObjectMapper類別的readValue()方法將JSON物件轉換為枚舉。在下面的範例中,我們可以使用Jackson函式庫將JSON物件轉換/反序列化為Java枚舉。範例importcom.fasterxml.jackson.databind.*;publicclassJSONToEnumTest{ &

所有JSON 解析器的預設設定都可以使用JsonParser.Feature枚舉來表示。 JsonParser.Feature.values()將傳回所有可用於JSONParser 的功能,但是特定解析器是否啟用或停用某個功能可以使用JsonParser的isEnabled()方法來確定。語法publicstaticenumJsonParser.FeatureextendsEnum<JsonParser.Feature>範例importcom.fas

@ConstructorProperties註解來自java.bean套件,用於透過帶有註解的建構函數將JSON反序列化為java物件。此註解從Jackson2.7版本開始支援。此註解的工作方式非常簡單,我們可以提供一個包含每個建構函式參數的屬性名稱的數組,而不是註解建構函式中的每個參數。語法@Documented@Target(value=CONSTRUCTOR)@Retention(value=RUNTIME)public@interfaceConstructorProperties範例impo

1.背景在專案中有些敏感資訊不能直接展示,例如客戶手機號碼、身分證、車牌號碼等信息,展示時均需要進行資料脫敏,防止洩露客戶隱私。脫敏即是對資料的部分資訊用脫敏符號(*)處理。 2.目標在服務端回傳資料時,利用Jackson序列化完成資料脫敏,達到對敏感資訊脫敏展示。降低重複開發量,提升開發效率形成統一有效的脫敏規則可基於重寫預設脫敏實現的desensitize方法,實現可擴展、可自訂的個性化業務場景的脫敏需求3.主要實現3.1基於Jackson的自訂脫敏序列化實作StdSerializer:所有標
