에러
Unrecognized field "xml 필드명"
이슈
XML 파싱하기 위해 JacksonXmlRootElement 어노테이션으로
요소를 정의하려고 했는데 에러가 발생했다.
원인
직렬화 시에 XML에 포함된 모든 요소가
전부 다 정의되어 있어야 하는데 일부만 정의되어 있어서 발생한 에러
예시
[XML]
<Food>
<China>짜장면</China>
<Japan>야끼우동</Japan>
</Food>
[Entity]
@JacksonXmlRootElement(localName = "Food")
public class Food {
private String China;
}
위의 경우 Unrecognized field "Japan" 에러가 발생하게 된다.
해결
하지만 나는 Japan 요소는 정의하고 싶지 않을 경우
@JsonIgnoreProperties(ignoreUnknown = true)
@JacksonXmlRootElement(localName = "Food")
public class Food {
private String China;
}
@JsonIgnoreProperties(ignoreUnknown = true)
어노테이션을 추가해주면 필요한 요소만 선언해주어도 된다.