Android/Error Log
[Android][error] java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at
yoo.o
2021. 2. 3. 18:40
반응형
문제
Retrofit을 사용해서 서버와 통신하던 중 java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at 에러가 났다.
이런 형식으로 서버에서 리턴해주는 값을 Material CalendarView에 사용하기 위해 List<CalendarDay>로 받아오려 하는 상황이었다.
monthly 안에 있는 String 값들을 CalendarDay로 읽지 못하는게 에러가 나는 이유였다.
해결 방법
List<String>으로 받아온 다음,
String 값을 .split()을 사용해 "-" 을 기준으로 나눠주고,
Int로 형변환해준 다음에 CalendarDay에 넣어줬다.
val bluedates = List(result.monthly.size) { index ->
val strdate = result.monthly[index].split("-")
CalendarDay(
Integer.parseInt(strdate[0]), // year
Integer.parseInt(strdate[1]) - 1, // month
Integer.parseInt(strdate[2]) // day
)
}
반응형