ホームページ  >  記事  >  Java  >  Jackson を使用した Java で @JsonManagingReference および @JsonBackReference アノテーションを使用する場合は?

Jackson を使用した Java で @JsonManagingReference および @JsonBackReference アノテーションを使用する場合は?

WBOY
WBOY転載
2023-09-05 22:33:061078ブラウズ

Jackson を使用した Java で @JsonManagingReference および @JsonBackReference アノテーションを使用する場合は?

@JsonManagingReference および @JsonBackReference アノテーション を使用して、 に JSON 構造を作成できます。 > 双方向。 @JsonManagingReference アノテーションはシリアル化中に含まれる 前方参照であり、@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"
   }
}

以上がJackson を使用した Java で @JsonManagingReference および @JsonBackReference アノテーションを使用する場合は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。