티스토리 뷰

반응형

문제

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
	)
}

 

반응형