해당 필드 값이 null 인 경우 직렬화 중에 필드 값을 무시하도록 Jackson을 구성하는 방법
예를 들면 다음과 같습니다.
public class SomeClass {
// what jackson annotation causes jackson to skip over this value if it is null but will
// serialize it otherwise
private String someValue;
}
답변
Jackson> 2.0을 사용하여 null 값으로 속성을 직렬화하지 않도록하려면 직접을 구성ObjectMapper
하거나 @JsonInclude
주석 을 사용할 수 있습니다 .
mapper.setSerializationInclusion(Include.NON_NULL);
또는:
@JsonInclude(Include.NON_NULL)
class Foo
{
String bar;
}
또는 @JsonInclude
값이 null이 아닌 경우 속성이 표시되도록 getter에서 사용할 수 있습니다 .
더 완벽한 예에서 볼 수 있습니다 내 대답 에 잭슨을 통해 직렬화하기에서 빈 내부지도 내부 널 (null) 값과 널 (null) 필드를 방지하는 방법 .
답변
Jackson> 1.9.11 및 <2.x에서는 @JsonSerialize
주석을 사용 하여 다음을 수행하십시오.
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
답변
다른 답변을 확장하기 위해-필드별로 null 값 생략을 제어 해야하는 경우 해당 필드에 주석을 추가하십시오 (또는 필드의 ‘getter’에 주석을 달으십시오).
예- 여기서는 fieldOne
null 인 경우 에만 json에서 생략됩니다. fieldTwo
null인지 여부에 관계없이 항상 포함됩니다.
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
클래스의 모든 null 값을 기본값으로 생략하려면 클래스에 주석을 답니다. 필요한 경우 필드 별 / 게터 주석을 사용하여이 기본값을 무시할 수 있습니다.
예 – 여기 fieldOne
와 fieldTwo
그들이 각각 null의 경우이 클래스 주석하여 기본 설정이기 때문에, JSON에서 ommitted됩니다. fieldThree
그러나 기본값을 무시하고 필드의 주석으로 인해 항상 포함됩니다.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
최신 정보
위의 내용은 Jackson 2 입니다. 들어 이전 버전 잭슨의 당신은 사용할 필요가 :
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
대신에
@JsonInclude(JsonInclude.Include.NON_NULL)
이 업데이트가 유용하면 아래에서 ZiglioUK의 답변을 찬성하십시오. 답변을 업데이트하기 전에 최신 Jackson 2 주석을 지적했습니다!
답변
Jackson 2.x에서 다음을 사용하십시오.
@JsonInclude(JsonInclude.Include.NON_NULL)
답변
다음과 같은 매퍼 구성을 사용할 수 있습니다.
mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
2.5 이후로 다음을 수행 할 수 있습니다.
mapper.setSerializationInclusion(Include.NON_NULL);
답변
당신은 설정할 수 있습니다 application.properties
:
spring.jackson.default-property-inclusion=non_null
또는 application.yaml
:
spring:
jackson:
default-property-inclusion: non_null
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
답변
나의 경우에는
@JsonInclude(Include.NON_EMPTY)
작동하게 만들었습니다.