>Java >java지도 시간 >Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 어떻게 제어합니까?

Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 어떻게 제어합니까?

王林
王林원래의
2024-05-06 22:09:02946검색

Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 제어합니다. 직렬화: @JsonIgnore: 속성 무시 @JsonProperty: 이름 지정 @JsonGetter: get 메서드 사용 @JsonSetter: set 메서드 사용 역직렬화: @JsonIgnoreProperties: 속성 무시 @JsonProperty: 이름 지정 @ JsonCreator: 생성자 @JsonDeserialize 사용: 사용자 정의 논리

Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 어떻게 제어합니까?

주석을 사용하여 Jackson 라이브러리에서 JSON 직렬화 및 역직렬화를 제어합니다.

소개

Jackson 라이브러리는 JSON 데이터 바인딩에 널리 사용되는 Java 라이브러리입니다. 주석은 Jackson 라이브러리에서 중요한 역할을 하며 JSON 직렬화 및 역직렬화 프로세스를 제어할 수 있게 해줍니다.

직렬화 주석

  • @JsonIgnore: JSON 출력에 포함되지 않도록 속성이나 메서드를 무시합니다.
  • @JsonProperty: JSON 출력에서 ​​속성 이름을 지정합니다.
  • @JsonGetter: 속성에 직접 접근하는 대신 메서드 호출 시 반환되는 값을 가져옵니다.
  • @JsonSetter: 속성 값을 직접 할당하는 대신 setter 메서드를 호출할 때 속성 값을 설정하세요.

역직렬화 주석

  • @JsonIgnoreProperties: JSON 입력에 지정된 속성을 무시합니다.
  • @JsonProperty: JSON 입력에서 속성 이름을 지정하고 이를 속성 또는 메서드에 매핑합니다.
  • @JsonCreator: setter 메서드를 사용하는 대신 기본이 아닌 생성자를 사용하여 개체를 만듭니다.
  • @JsonDeserialize: 사용자 정의 역직렬화 논리를 지정합니다. 사용자 정의 유형 변환기나 처리기를 사용할 수 있습니다.

실용 사례

다음은 Jackson 주석을 사용하는 방법을 보여주는 예제 클래스입니다.

@JsonIgnoreProperties(ignoreUnknown = true)
public class Person {

    private String name;

    @JsonProperty("age")
    private int yearsOld;

    @JsonGetter("education")
    public String getEducation() {
        return "College";
    }

    @JsonSetter("years_old")
    public void setAge(int yearsOld) {
        this.yearsOld = yearsOld;
    }
}

이 예제에서는:

  • @JsonIgnoreProperties(ignoreUnknown = true) JSON 입력 속성 무시 그건 수업에 존재하지 않습니다. @JsonIgnoreProperties(ignoreUnknown = true) 忽略JSON输入中类中不存在的属性。
  • @JsonProperty("age") 指定 yearsOld 属性在JSON输出中的名称为 "age"。
  • @JsonGetter("education") 通过获取方法 "getEducation" 返回 "education" 属性的值。
  • @JsonSetter("years_old")
  • @JsonProperty("age")는 JSON 출력의 yearsOld 속성 이름이 "age"임을 지정합니다.

@JsonGetter("education") getEducation" 메소드를 통해 "education" 속성의 값을 반환합니다.

🎜@JsonSetter("years_old") "setAge" 설정 메서드를 통해 "yearsOld" 속성의 값을 설정합니다. 🎜🎜🎜Jackson 라이브러리를 사용하여 직렬화 및 역직렬화를 수행할 수 있습니다. 🎜
// 序列化
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(person);

// 反序列化
Person person = mapper.readValue(json, Person.class);

위 내용은 Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 어떻게 제어합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.