당신은 세터에서 불필요한 항목을 필터링 할 수 있습니다 : 여기
public void setUsers(List<User> users) {
this.users = users.stream().filter(u -> u != null && u.id != null).collect(Collectors.toList());
}
을 내 완전한 테스트 클래스 :
이
public static void main(String[] args)
{
String json = "{ \"users\" : [{\"id\" : 123, \"name\" : \"Andrew\"}, {\"name\" : \"Bob\"}, {\"id\" : 789}]}";
try {
ObjectMapper mapper = new ObjectMapper();
Users users = mapper.readValue(json, Users.class);
System.out.println(users.users);
} catch (Exception e) {
e.printStackTrace();
}
}
public static class Users
{
private List<User> users;
public void setUsers(List<User> users)
{
this.users = users.stream().filter(u -> u != null && u.id != null).collect(Collectors.toList());
}
}
public static class User
{
public Integer id;
public String name;
@Override
public String toString()
{
return"{id=" + id + ", name=" + name + "}";
}
}
출력 : [{id=123, name=Andrew}, {id=789, name=null}]
이 https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations를 확인하십시오. 작성한 디시리얼라이저 코드를 표시하십시오. –
id 속성에 @JsonProperty (필수 = true)를 시도 했습니까? – Jayz
@DhruvPal 필자는 ObjectMapper를 사용하는 Feign 클라이언트를 사용합니다. @ Jayz 시도했지만, id가없는 항목은 null id 값에 포함됩니다. – kornisb