[Spring] ObjectMapper

Jisu_M·2024년 11월 22일

ObjectMapper는 JSON과 Java 객체를 상호 변환할 수 있도록 돕는 Jackson 라이브러리의 클래스다. Spring 환경에서는 주로 REST API 통신과 데이터 직렬화/역직렬화에 사용된다.

주요 기능

  • JSON을 Java 객체로 변환
    readValue() 메서드를 사용해 JSON 데이터를 Java 객체로 변환해야 한다.
MyObject obj = objectMapper.readValue(jsonString, MyObject.class);
  • Java 객체를 JSON으로 변환
    writeValueAsString() 메서드를 이용해 Java 객체를 JSON 문자열로 변환해야 한다.
String jsonString = objectMapper.writeValueAsString(obj);

Spring에서의 활용

1. HTTP 요청 처리

ObjectMapper를 사용해 클라이언트의 JSON 요청 데이터를 Java 객체로 변환한다.

@PostMapping("/process")
public ResponseEntity<String> processData(@RequestBody String jsonData) {

    MyObject obj = objectMapper.readValue(jsonData, MyObject.class);
    return ResponseEntity.ok("Processed: " + obj.toString());
}

2. HTTP 응답 생성

Java 객체를 JSON으로 변환한 후 클라이언트로 반환한다.

MyObject obj = new MyObject("example", 123);
String jsonResponse = objectMapper.writeValueAsString(obj);
return ResponseEntity.ok(jsonResponse);

3. 주의사항

readValue() 메서드는 JSON 변환 과정에서 JsonProcessingException 예외를 던지므로, 예외를 적절히 처리해야 한다.

이를 위해 try-catch 블록을 사용하는 것이 좋다. 예외 처리 없이 호출하면 런타임 오류가 발생할 수 있다.

다만, Spring에서 @RequestBody와 같은 어노테이션을 사용할 때는 Spring이 자동으로 예외를 처리해 주므로, ObjectMapper를 명시적으로 사용할 경우에만 예외 처리 블록을 사용하는 것이 일반적이다.

profile
개발 여정을 기록하며 성장하는 매일

0개의 댓글