Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 Jackson을 사용하여 JSON의 필드 이름을 어떻게 변경할 수 있습니까?


Jackson 주석 @JsonProperty 직렬화 하는 동안 속성이나 메서드에 사용됩니다. 또는 직렬화 해제 JSON의 . 선택적 '이름이 필요합니다. ' 매개변수 속성 이름이 'key와 다른 경우에 유용합니다. ' 이름 JSON . 기본적으로 키 이름이 속성 이름과 일치하면 값이 속성 값에 매핑됩니다.

아래 예에서 필드 이름을 변경할 수 있습니다. @JsonProperty 주석을 사용하여 JSON에서 .

예시

import java.io.IOException;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.annotation.JsonProperty;
public class JsonPropertyAnnotationTest {
   public static void main(String[] args) throws IOException {
      ObjectMapper mapper = new ObjectMapper();
      mapper.enable(SerializationFeature.INDENT_OUTPUT);
      User user = new User("Sai", "Adithya", "9959984000", "0402358700");
      String data = mapper.writeValueAsString(user);
      System.out.println(data);
   }
}
// User class
class User {
   @JsonProperty("first-name")
   public String firstName;
   @JsonProperty("last-name")
   public String lastName;
   @JsonProperty("mobile-phone")
   public String mobilePhone;
   @JsonProperty("home_phone")
   public String workPhone;
   public User(String firstName, String lastName, String mobilePhone, String workPhone) {
      super();
      this.firstName = firstName;
      this.lastName = lastName;
      this.mobilePhone = mobilePhone;
      this.workPhone = workPhone;
   }
}

출력

{
   "first-name" : "Sai",
   "last-name" : "Adithya",
   "mobile-phone" : "9959984000",
   "home_phone" : "0402358700"
}