본문 바로가기
프로그래밍언어/JAVA

[JAVA]JSON<->object 변환 방법(LocalDateTime변환포함)

by 연어바케트 2023. 3. 7.
반응형

1. JSON -> Object

아래 형식의 JSON 파일을 Object로 변환

String productConfig = "{
    "customerCountry":"kor",
    "customerCompany":"hmc",
    "customerName":"hong-gil-dong",
    "customerEmail":"hong@hanilprotech.com",
    "customerDepartment":"develop", 
    "hptProgramList": [
      {
        "programName": "program",
        "startDate" : "2019-03-19",
        "expireDate" : "2999-03-19",
        "licenseClass" : "PRO",
        "version" :"5.0.1.0",
        "options": 7
      }
    ]
}";

위 Json 파일 변환을 위해서 ObjectMapper 객체를 만들어 준다.

 

ObjectMapper objectMapper = new ObjectMapper();
ProductDto convertDto = objectMapper.readValue(productConfig, ProductDto.class);

 objectMapper.readVaule를 이용하여 JSON  -> object로 변환할 수 있다. 

하지만 필자는 에러가 발생했다. LocalDate를 매핑할 수 없어서였다. 

  • LocalDate가 포함되어 있을 경우
ProductDto convertDto = objectMapper.registerModule(new JavaTimeModule()).readValue(productConfig, ProductDto.class);

JavaTimeModule을 추가해주고 변환을 하면 정상동작하는 것을 볼 수 있다. 

 

 

2.Object -> JSON 

이 또한 ObjectMapper를 이용하면된다. 

 

Object -> JSON으로 변경시 아래 코드를 참고하자. 

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValueAsString(licenseDetailsDto)

위 코드가 정상 동작하지 않는다면 JSON->Object와 동일하게 LocalDate를 포함 하고 있을 수도 있다. 

 

  • LocalDate가 포함되어 있는 경우 
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule()).writeValueAsString(licenseDetailsDto)

LocalDate타입이 포함되어 있는 경우 위의 코드를 참고하자. 

반응형

'프로그래밍언어 > JAVA' 카테고리의 다른 글

[Spring] Maven 과 Gradle 차이  (0) 2021.09.24

댓글