Jackson에서 @JsonProperty 주석을 사용해야 하는 경우
다음 Java Bean을 고려하세요.
public class State { private boolean isSet; @JsonProperty("isSet") public boolean isSet() { return isSet; } @JsonProperty("isSet") public void setSet(boolean isSet) { this.isSet = isSet; } }
이러한 경우 객체는 JSON으로 직렬화되어 AJAX를 통해 전송되며 성공 콜백이 정의됩니다. as:
success : function(response) { if(response.State.isSet){ alert('success called successfully) } }
이 시나리오에서 @JsonProperty 주석이 필요합니까?
@JsonProperty 주석의 필요성
@JsonProperty 주석 여기서는 엄격하게 요구되지 않습니다. 제거해도 부작용이 발생하지 않습니다. 그러나 이를 사용하면 여러 가지 이점이 있습니다.
사용자 정의 속성 이름 지정
위 코드에서 설명한 것처럼 이 주석을 사용하여 직렬화를 위한 다른 속성 이름을 지정할 수 있습니다. 및 역직렬화 목적. 이 경우 "isSet"은 Bean의 속성 이름과 직렬화된 JSON의 속성 이름 모두로 사용됩니다. @JsonProperty를 활용하여 개발자는 선호하는 명명 규칙과 일치하거나 기존 명명 체계와의 충돌을 해결하기 위해 속성 이름을 사용자 정의할 수 있습니다.
속성 사용자 정의
속성 이름 변경 그 이상으로, @JsonProperty는 추가 사용자 정의 옵션도 허용합니다. 포함:
예를 들어 값이 true인 경우 isSet 속성만 직렬화하도록 State Bean을 수정해 보겠습니다.
@JsonProperty(condition = JsonInclude.Include.NON_DEFAULT) private boolean isSet;
이렇게 하면 속성의 값이 다음과 같은 경우에만 직렬화된 JSON에 포함됩니다. true.
궁극적으로 @JsonProperty 사용 결정은 애플리케이션의 특정 요구 사항에 따라 결정됩니다. 개발자가 속성 이름을 사용자 정의하거나 추가 속성 수준 구성을 적용하는 기능이 필요한 경우 이 주석을 사용하는 것이 좋습니다.
위 내용은 Java에서 JSON 직렬화에 @JsonProperty 주석이 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!