Sky Archive

트러블슈팅 & 디버깅

[Java] 알 수 없는 속성이 있는 JSON 처리, Jackson Unmarshalling JSON

Anchovy ʕ-᷅ᴥ-᷄ʔ 2023. 3. 6. 16:26

증상: Unrecognized Property Exception

API로 JSON 데이터를 받아와 Java 엔터티로 언마샬링(객체로 맵핑), DTO 클래스에 선언되지 않은 속성이 있으면 오류 발생.

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field

 

해결 방법:

1. ObjectMapper를 사용하여 알 수 없는 필드 처리

ObjectMapper 객체 생성 시 옵션 설정

 

ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

 

2.  클래스 수준에서 알 수 없는 필드 처리

DTO class에 @JsonIgnoreProperties 어노테이션

 

- 특정 필드만 제외

@JsonIgnoreProperties({"name"})
public class Sample {
	private String name;
	...
}

 

- 선언된 필드 외에 모든 요소 제외

@JsonIgnoreProperties(ignoreUnknown = true)
public class Sample {
	private String name;
	...
}

 

 

 

 

 

 

 

 

ref .https://www.baeldung.com/jackson-deserialize-json-unknown-properties