jackson에서 제공하는 Object Mapper를 사용하여, Json데이터를 DTO객체로 변환할 때 아래와 같은 오류 발생.
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "8. Bid Price"
... 중략 ...
문제점은 Json 데이터의 Key가 변환하고자 하는 DTO객체에 없는 경우 발생합니다.
Json Data
{
"1. From_Currency Code" : "USD",
"2. From_Currency Name" : "United States Dollar",
"3. To_Currency Code" : "KRW",
"4. To_Currency Name" : "South Korean Won",
"5. Exchange Rate" : "1328.17000000",
"6. Last Refreshed" : "2022-11-24 05:32:44",
"7. Time Zone" : "UTC",
"8. Bid Price" : "1328.17000000",
"9. Ask Price" : "1328.17000000"
}
Dto
@Getter
@ToString
public class CurrencyExchangeDTO {
@JsonSetter("1. From_Currency Code")
private String fromCurCode;
@JsonSetter("2. From_Currency Name")
private String fromCurName;
@JsonSetter("3. To_Currency Code")
private String toCurCode;
@JsonSetter("4. To_Currency Name")
private String toCurName;
@JsonSetter("5. Exchange Rate")
private String exchangeRate;
@JsonSetter("6. Last Refreshed")
private String lastRefreshedAt;
@JsonSetter("7. Time Zone")
private String tz;
}
- 두 개의 Key가 매핑되지 않은 상태, 이를 무시하려면,
@JsonIgnoreProperties
을 사용합니다.
@JsonIgnoreProperties
@Getter
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class CurrencyExchangeDTO {
...
}
- ignoreUnknown = true 옵션을 주어야 합니다.
반응형
'Web Programming' 카테고리의 다른 글
Java 17 주요 특징 with 예제 샘플 코드 (2) | 2023.01.29 |
---|---|
Java 11 주요 특징 with 예제 샘플 코드 (0) | 2023.01.28 |
Java Map객체를 Pojo(Model) class로 변환 ( JsonSetter, ObjectMapper 사용법 ) (0) | 2022.11.24 |
Java - Lombok활용법, 쉽게 Builder class 만들기 (0) | 2022.10.14 |
gRPC - From Java(Spring) Client to Python Server 예제 (0) | 2022.09.02 |