나는 Dropwizard의 Jackson을 사용하고 있습니다. 내 수업에는 다음과 같은 필드가 있습니다.Jackson - 변환을 수행 할 때 joda.time.DateTime 필드의 null 값을 무시할 수 없습니까?
public class SubscriptionInfo{
@JsonProperty private Integer subscriptionId;
@JsonProperty private Integer packageId;
@JsonProperty private DateTime startDate;
@JsonProperty private DateTime endDate;
// other fields, getters, setters
...
}
startDate 또는 endDate가 null 인 경우 변환 된 JSON에 키가 있어야합니다. @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
과 같은 특수 효과를 수행하지 않았습니다. 변환 된 JSON 모양은 다음과 같습니다.
{
"subscriptionId": 111,
"packageId": null,
"startDate": 1477908963000
}
"packageId"는 있지만 "endDate"는 표시되지 않습니다. null 일 때 "startDate"및 "endDate"에 대해 보존 된 키를 가질 수 있는지 궁금합니다.
업데이트 : 0.9.2과 잭슨 2.6.1을 사용하고
. jackson-datatype-joda 2.6.1에 대한 의존성이있는 것 같습니다. 이것이 JodaModule의 기본 동작인지 궁금합니다. 그렇다면 어떻게 변경할 수 있습니까?
문제를 재현하는 완전한 최소 예를 게시하십시오. 주석이 있거나 활성화 된 기능이있어 null 인 경우 해당 필드를 제거하도록 명시 적으로 요청합니다. –
@Alex 어떤 잭슨 버전을 사용하고 있습니까? 또는 어떤 버전의 DW? 감사. –
@JsonProperty를 제거하고 클래스 정의 맨 위에 @JsonInclude (ALWAYS)를 추가하십시오. –