[Java] Key에 공백과 한글이 들어간 Json 객체 DTO 맵핑하는 방법

2023-05-10


사진: Unsplash 의 NEOM


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);

메인 이미지 출처 : 사진: UnsplashNEOM