First I know my title is bad as I didn't come up with better, I'm opened to suggestion.
I'm using retrofit to get data from an api of this kind : @GET("users/{userid}")
It works fine and I'm happy with it, the problem is when I call the same api with @POST("users/widget")
with a list of ids. I have the following answer :
{
"long_hash_id": {
"_id": "long_hash_id"
.......
},
"long_hash_id": {
"_id": "long_hash_id",
.....
},
........
}
the "long_hash_id" is typicaly "525558cf8ecd651095af7954" it correspond to the id of the user attached to it.
When I didn't use retrofit, I used Gson in stream mode to get each user one by one. But I don't know how to tell retrofit.
Hope I'm clear and Thank you in advance.
----------- Solution :
I made my interface this way :
@FormUrlEncoded
@POST(AppConstants.ROUTE_USER_GROUP)
Call<Map<String,User>> getUsers( @Field("ids") List<String> param, @QueryMap Map<String,String> options);
and I simply gave my ArrayList of ids. Thank you very much
Gson
is able to deal with JSON objects with variable keys like the one you posted. What you have to do, in this case, is to declare a Map<String, ModelClass>
, where ModelClass
is the content of the JSONObject you want to represent
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With