[Moshi] java.util.Date Type 역직렬화 Error 해결 (Rfc3339DateJsonAdapter)

GilLog·2021년 8월 30일
0

Java

목록 보기
26/29

# import

How to send Date object through Moshi JSON serializer?

에러 상황

아래와 같은 API의 Response를 Moshi로 역직렬화 하려는 과정에서,

아래 에러가 발생했다.

java.lang.IllegalArgumentException: 
Platform class java.util.Date requires 
explicit JsonAdapter to be registered at 
com.squareup.moshi.ClassJsonAdapter$1
.create(ClassJsonAdapter.java:65) ~[moshi-1.9.2.jar:na]

역직렬화를 수행하던 코드는 아래와 같고,

객체로 담을 Class는 아래와 같았다.

핵심

원인은 Moshi Adapter를 Build 해줄때,

위와 같은 RFC 3339 Format의 Date type Adapter를 추가해주지 않아 발생했다.

해결

아래와 같이 Moshi Adapter를 build() 하기 전

RFC 3339 Date Formatter Adapter,

Rfc3339DateJsonAdapter를 추가해주며 해결 했다.

KaKaoResponse kakaoUserInfoResponse = 
		new Moshi.Builder()
                         .add(Date.class, new Rfc3339DateJsonAdapter())
                         .build()
                         .adapter(KaKaoResponse.class)
                         .fromJson(response.body()
                         .source());

profile
🚀 기록보단 길록을 20.10 ~ 22.02 ⭐ Move To : https://gil-log.github.io/

0개의 댓글