카테고리 없음

JSON key type 과 Spring Boot 환경

jeeslab 2025. 2. 11. 11:47

스프링 부트에서는 3가지 JSON 관련 라이브러리들이 제공합니다.

  • GSON
  • Jackson
  • JSON-B

이들 중 Jackson 기본값이며, ObjectMapper 라는 빈위에 자동으로 설정되어 있습니다.

보다 자세한 내용은 여기 공식문서를 참조하면 될 것 같습니다.

 

이 Jackson 은 JSON 명세를 따르며,
이 명세에서는 객체의 키가 반드시 문자열이어야 한다고 규정하고 있다는 점 입니다.

RFC 8259 (The JavaScript Object Notation (JSON) Data Interchange Format)에서는 다음과 같이 명시하고 있습니다.

"An object is an unordered collection of zero or more name/value pairs, where a name is a string and a value is a string, number, boolean, null, object, or array."

 

스프링 기반 코드 작성시, 객체의 키를 문자열이 아닌 숫자형(int, Long)으로 주면, 어떻게 될까요?

Jackson 에서 어떠한 오류나 경고를 내지 않고, 문자열으로 자동 변환되어 진행합니다.

이에 따라, 나는 굳이 객체 키가 숫자형 경우, 문자열 변환 코드를 넣지 않고 있습니다.

즉, 별도 어노테이션이나 추가 설정 없이, 간결한 코드를 유지할 수 있습니다.

 

이미 많은 분들이 잘 알고 있는 내용이겠지만,

본인의 코드 작성 철학과 근거를 위해 간단히 남깁니다.