관리 메뉴

나만을 위한 블로그

[Android] 레트로핏 사용 시 Expected a string but was BEGIN_OBJECT at line 1 column 2 path $ 에러 해결 본문

Android

[Android] 레트로핏 사용 시 Expected a string but was BEGIN_OBJECT at line 1 column 2 path $ 에러 해결

참깨빵위에참깨빵 2021. 8. 4. 18:55
728x90
반응형

API 또는 서버에서 JSON 값을 받아 클라이언트에서 파싱할 때 인터페이스의 추상 메서드를 Call로, 또는 Rxjava를 사용 중이라 Observable으로 설정해서 메서드를 호출할 경우 간간이 볼 수 있다.

레트로핏 기준으로 해결법은 아래와 같다.

 retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(ScalarsConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build();

 

.addConverterFactory(ScalarsConverterFactory.create()) 코드를 GsonConverterFactory 위에 추가해주면 된다.

에러 문구를 번역하면 이런 결과가 나온다.

문자열을 예상했지만 1행 2열 경로 $에서 BEGIN_OBJECT였습니다.

ScalarsConverterFactory를 추가해주면 이 에러가 사라진다.

이 컨버터를 사용하는 이유는 아래의 포스팅에 작성해뒀으니 참고하려면 참고하자.

https://onlyfor-me-blog.tistory.com/179

 

[Android] 레트로핏2.x에서 response를 String으로 받아오는 법

먼저 앱 수준 gradle에 레트로핏 의존성이 있어야 한다. 그 중 이 의존성이 필요하다. implementation 'com.squareup.retrofit2:converter-scalars:2.5.0' 그 다음 new Retrofit.Builder() 뒤에 이 컨버터 팩토리..

onlyfor-me-blog.tistory.com

 

반응형
Comments