serialization
[Java] Enum to Json / Enum to Object
[Java] Enum to Json / Enum to Object
2020.04.27EnumConstant 하나를 `` {fieldName:fieldValue}`` 형식으로 매핑하고 싶은 경우가 있다 ( 주로 뷰로 전달해야 할 때. ) 기본적으로 jackson의 ObjectMapper는 serialize/deserialize 할 때 Enum 코드만 내려주도록 되어 있다. 즉, ``java PaymentCode.CARD``를 변환하면 ``java "CARD"``가 된다. ``java {code=1, koName="카드", enName="card"}`` 형태로 내려주려면, 뭔가 해줘야 한다 방법 1 ) Jackson / ObjectMapper를 사용하고 싶은 경우 방법 1-1 ) @JsonFormat.Shape.OBJECT key:value 쌍을 내려주고 싶은 경우를 대비해 jackson은..
RestTemplate은 어떻게 response Object를 DataType <T>로 변환하는가
RestTemplate은 어떻게 response Object를 DataType <T>로 변환하는가
2020.03.27원래 그 데이터 타입으로는 캐스팅 가능 ```kt @Test fun `테스트`() { val obj: Object = Coffee("id", "name") as Object val coffee: Coffee = obj as Coffee // 이건 원래 그 데이터가 Coffee라서 가능 val obj2: Object = Object() val coffee2: Coffee = obj2 as Coffee // 이건 불가능. id 속성이랑 name 속성이 없으니까 당연 불가능하다 } ``` RestTemplate의 response Object -> T type casting 과정 RestTemplate도 내부적으로는 `` (T)`` 캐스팅을 이용하게 되는데 ``kt extractData()``에서 비검사 형변환..
[Kotlin] Serialization: Gson, Jackson
[Kotlin] Serialization: Gson, Jackson
2020.03.19[Java] Jackson ObjectMapper Serialization Jackson 역직렬화 시 발생할 수 있는 에러 ( jacksonObjectMapper() ) ```javastacktrace InvalidDefinitionException: Cannot construct instance of `com.test.example.data.Coffee` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator) ``` redis에서 받아와서 kotlin data 클래스인 Coffee에 넣으려고 하는데 발생 Jackson이 Deserializ..
RestTemplate 사용 시 ResponseType으로 generic 타입 받기 (ParameterizedTypeReference)
RestTemplate 사용 시 ResponseType으로 generic 타입 받기 (ParameterizedTypeReference)
2019.07.11Response를 받을 때 Generic 타입으로 매핑하여 받고 싶을 때가 있다. ```java DefaultResponseWrapper userInfoResponseWrapper = restTemplate.postForObject( userInfoUrl, new UserInfoRequest("MTA1", "HH_SERVICE", encryptedCi), DefaultResponseWrapper.class ); ``` 그러나 `` postForObject()`` 같은 함수는 generic이 들어간 타입을 응답으로 받을 수 없다. 위처럼 작성하면 오류가 발생한다. ParameterizedTypeReference를 사용하면 generic 타입을 응답으로 받을 수 있다. (generic 타입으로 매핑할 수 있..
[Java] Jackson ObjectMapper Serialization
[Java] Jackson ObjectMapper Serialization
2019.05.15ObjectMapper Configuration SpringBoot가 생성 및 제공하는 ObjectMapper Bean / configuration Spring Boot가 default ObjectMapper Bean 생성 할 때 관여하는 클래스는 `` JacksonAutoConfiguration, Jackson2ObjectMapperBuilder``이므로, 이 두 클래스를 참고하면 기본 설정을 알아낼 수 있다. 역할 org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration -> application.yml의 spring.jackson... 설정 적용. org.springframework.http.converter.json.Jacks..