Spring Custom Serializer 그리고 Deserializer


목적

  • Object <-> JSON 커스텀

상세

  • API 서버를 개발하다 보면 JSON Value를 전송하고 이를 커스텀하여 Object로 받아야 할 때가 있다. 그 반대로 Object를 커스텀하여 JSON Value로 바꿔 전송해야 할 때도 있다.
  • Serializer = Object -> JSON
  • Deserializer = JSON -> Object

구현

  • StdSerializer를 extends 후 serialize() 메소드를 Override해서 사용한다.

    @JsonComponent
    public class LongToStringSerializer extends StdSerializer<Long> {
        
        @Override
        public void serialize(Long val, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
            jsonGenerator.writeString(val.toString());
        }
    }
    

활용

  • 서버 내부에서는 Set, Enum 등으로 String을 관리하고 외부에 노출 할때 String 혹은 Long 형태로 반환할 때 활용하면 좋을 것으로 보인다.

pkgonan

서버 개발자 Github Linkedin Facebook

Java 및 Spring을 활용한 서버 개발과 성능 튜닝에 관심이 있습니다. 객체지향 및 테스트 코드 작성을 중요하게 생각하며, 변화에 강한 코드를 작성하고자 노력하고 있습니다.