2017-04-02 1 views
1

객체 클래스에서 필드가 누락 된 JSON 문자열을 역 직렬화하려고하면 객체가 생성 될 때 해당 필드가 null로 설정됩니다. Jackson이 예외가 발생하면 모든 객체에 assertNotNullFields() 메서드를 구현할 필요가 없습니다. 즉 JSON 문자열 입력이 클래스의 모든 필드를 정의했거나 JsonProcessingException이 발생했습니다.Jackson을 사용하는 null 필드가있는 객체 피하기

개체 매퍼 구성 :

objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); 
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); 

JSON 개체 :

public class LogInUser { 
    public String identifier, password; 
    public LogInUser() {} 
} 

내 구성에 대해,이 가능한가요?

답변

0

LogInUser 클래스 내에서 here처럼 JsonCreator을 사용해 볼 수 있습니다. 당신이 당신의 으론 제기 코드에 도입하면 다음과 같이 보일 것이다 : 하나 이상의 값이 null의 경우

public class LogInUser { 

    @JsonCreator 
    public LogInUser(@JsonProperty(value = "identifier", required = true) String identifier, @JsonProperty(value = "password", required = true) String password) { 
    this.identifier = identifier; 
    this.password = password; 
    } 

    public String identifier, password; 
    public LogInUser() {} 

} 

, 그것은 예외를 발생한다.