2023-05-10
1. 방법
@JsonProperty라는 어노테이션을 사용하면 해당 문제를 손쉽게 해결할 수 있습니다. 아래의 예제 코드를 살펴봅시다.
예시 Json
{
"이름": "홍길동",
"나이": 30,
"주소 정보": "서울시 강남구"
}
예시 DTO
import com.fasterxml.jackson.annotation.JsonProperty;
public class PersonDTO {
@JsonProperty("이름")
private String name;
@JsonProperty("나이")
private int age;
@JsonProperty("주소 정보")
private String address;
// Getter와 Setter 메서드 생략
}
아래 코드에서 objectMapper.readValue(json, PersonDTO.class) 메서드는 JSON 문자열을 PersonDTO 객체로 변환합니다. 이때, 필드 이름이 JSON 객체의 필드 이름과 일치하지 않는 경우에는 @JsonProperty 어노테이션을 사용하여 매핑할 수 있습니다.
import com.fasterxml.jackson.databind.ObjectMapper;
// ...
ObjectMapper objectMapper = new ObjectMapper();
// JSON 문자열을 DTO 객체로 변환
String json = "{\"이름\":\"홍길동\",\"나이\":30,\"주소\":\"서울시 강남구\"}";
PersonDTO personDTO = objectMapper.readValue(json, PersonDTO.class);