뭔가 억울한데 어디 하소연할수도 없고 진짜 하...


아니.... 



Retrofit2 로 구글API에서  자바빈으로 안받고  Json객체로 받으려고 


@GET("maps/api/place/textsearch/json")
Call<JSONObject> findDestinationWithRadius(@Query("query")String searchKeyword);


이렇게 줬는데 계속해서 response.body()가 null이 들어오는 것이다..


아니 이게 파싱이 안되면 익셉션이라도 떠야되는데 


계속해서 null이 뜨길래 무슨 문제인지 계속 고민하다가 


하필이면 비동기 통신이라서 동시성문제 인가 싶어서 Thread.sleep으로 일부로 지연시켜보고 별 짓을 다했는데 




원인은 이거다




JSONObject => org.json.JSONObject  객체이고


JsonObject -> com.google.gson.JsonObject 객체이다 



레트로핏2 빌드할때 GsonConverter를 줬는데 

Retrofit retrofit=new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.baseUrl(BASE_URI)
.build();



파싱 반환값음 org.json의 객체인 JSONObject로 반환 받으니까 


익셉션이 안뜨고 그냥 null로 비워버리는 문제가 발생했다

(이거 버그 같은데?)



반환 값을 JsonObject로 바꾸니까 정상적으로 파싱되었다 



아 진짜 나도 사수가 있었으면 좋겠다 

무의미한 오타찾기 삽질기간을 줄이고 싶은데 항상 누구하나 물어볼사람은 없고...



공부는 항상 외롭다.











+ Recent posts