Square에서 Retrofit을 사용하여 Android 개발에 관한 질문이 있습니다. Response 객체가 실제로 HashMap<String, String>
객체 인 경우를 가정 해 보겠습니다.Retrofit - 응답을 HashMap으로 변환하는 방법?
이 Retrofit 개체에서 HashMap
개체를 가져 오는 방법이 있습니까?
감사합니다.
Square에서 Retrofit을 사용하여 Android 개발에 관한 질문이 있습니다. Response 객체가 실제로 HashMap<String, String>
객체 인 경우를 가정 해 보겠습니다.Retrofit - 응답을 HashMap으로 변환하는 방법?
이 Retrofit 개체에서 HashMap
개체를 가져 오는 방법이 있습니까?
감사합니다.
Response
개체는 서버에서 반환 된 응답에 대한 다양한 정보를 포함합니다.
는 응답 본문이 의미하는 경우 HashMap
당신이 success()
가 호출 될 때 몸을 구문 분석 할 수 있습니다, 또는 RestAdapter
를 구축하고 구문 분석하고 HashMap
을 채 웁니다 디시리얼라이저를 쓸 때 형 어댑터를 등록합니다.
private RestAdapter getRestAdapter(){
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(new TypeToken<HashMap<String, String>>(){}.getType(), new MyHashMapDeserializer());
RestAdapter.Builder builder = new RestAdapter.Builder();
builder.setClient(new OkClient());
builder.setLogLevel(RestAdapter.LogLevel.FULL);
builder.setExecutors(Executors.newCachedThreadPool(), new MainThreadExecutor());
builder.setConverter(new GsonConverter(gsonBuilder.create()));
builder.setEndpoint(API_END_POINT_URL);
return builder.build();
}
는 그런 다음 직렬화 로직을 구현 implements JsonDeserializer<HashMap<String, String>>
하고 새로운 클래스 (또는 내부 클래스)를 만들 수 있습니다.
K,V
유형을 필요에 맞게 조정하십시오.
Gson은 어떤 구성도없이'Map'을 deserialize 할 것입니다. 그래서 정말로 이것들을 할 필요는 없습니다. 단지 Retrofit 리턴 타입이나'Callback' 타입으로'Map'을 지정하십시오. –
위의 댓글은 답변이어야합니다! –