@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 중국어 웹사이트의 기타 관련 기사를 참조하세요!