> Java > java지도 시간 > Java에서 Jackson을 사용하는 @JsonIdentityInfo 주석의 중요성은 무엇입니까?

Java에서 Jackson을 사용하는 @JsonIdentityInfo 주석의 중요성은 무엇입니까?

WBOY
풀어 주다: 2023-09-23 09:37:02
앞으로
1349명이 탐색했습니다.

Java에서 Jackson을 사용하는 @JsonIdentityInfo 주석의 중요성은 무엇입니까?

@JsonIdentityInfo 주석은 Jackson 라이브러리에서 개체가 부모-자식 관계를 가질 때 사용됩니다. @JsonIdentityInfo annotation 은 직렬화 및 역직렬화 중에 개체 ID를 나타내는 데 사용됩니다. ObjectIdGenerators.PropertyGenerator는 사용할 개체 식별자가 POJO 속성에서 나오는 경우를 나타내는 데 사용되는 추상 자리 표시자 클래스입니다.

구문

@Target(value={ANNOTATION_TYPE,TYPE,FIELD,METHOD,PARAMETER})
@Retention(value=RUNTIME)
public @interface JsonIdentityInfo
로그인 후 복사

import java.util.*;
import java.io.*;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonIdentityInfoTest {
   public static void main(String[] args) throws IOException {
      ObjectMapper mapper = new ObjectMapper();
      User user = new User(115, "Raja", "Ramesh");
      Address address = new Address(125, "Madhapur", "Hyderabad", user);
      user.addAddress(address);
      String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(address);
      System.out.println(jsonString);
   }
}
// User class
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "userId")
class User {
   private int userId;
   private String firstName;
   private String lastName;
   private List<Address> addresses;
   public User(int userId, String firstName, String lastName) {
      this.userId = userId;
      this.firstName = firstName;
      this.lastName = lastName;
      this.addresses = new ArrayList<Address>();
   }
   public int getUserId() {
      return userId;
   }
   public String getFirstName() {
      return firstName;
   }
   public String getLastName() {
      return lastName;
   }
   public void addAddress(Address address) {
      addresses.add(address);
   }
}
// Address class
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "userId")<strong>
</strong>class Address {
   private int userId;
   private String city;
   private String street;
   private User user;
   public Address(int userId, String street, String city, User user) {
      this.userId = userId;
      this.street = street;
      this.city = city;
      this.user = user;
   }
   public int getUserId() {
      return userId;
   }
   public String getStreet() {
      return street;
   }
   public String getCity() {
      return city;
   }
   public User getUser() {
      return user;
   }
}
로그인 후 복사

출력

{
 "userId" : 125,
 "city" : "Hyderabad",
 "street" : "Madhapur",
 "user" : {
    "userId" : 115,
    "firstName" : "Raja",
    "lastName" : "Ramesh"
    }
}
로그인 후 복사

위 내용은 Java에서 Jackson을 사용하는 @JsonIdentityInfo 주석의 중요성은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿