Retrofit,如何用可变键解析JSON对象

Ren*_*ier 3 android json gson retrofit

首先我知道我的头衔不好,因为我没有想出更好的,我愿意接受建议。

我正在使用改造从这种 api 获取数据: @GET("users/{userid}")

它工作正常,我很满意,问题是当我使用@POST("users/widget")ID 列表调用相同的 api 时。我有以下答案:

{
  "long_hash_id": {
    "_id": "long_hash_id"
    .......
  },
  "long_hash_id": {
    "_id": "long_hash_id",
    .....
  },
  ........
}
Run Code Online (Sandbox Code Playgroud)

“long_hash_id”通常是“525558cf8ecd651095af7954”,它对应于附加到它的用户的ID。

没用retrofit的时候,我用流模式的Gson,把每个用户一一获取。但我不知道如何告诉改造。

希望我很清楚,并在此先感谢您。

- - - - - - 解决方案 :

我是这样制作我的界面的:

@FormUrlEncoded
@POST(AppConstants.ROUTE_USER_GROUP)
Call<Map<String,User>> getUsers( @Field("ids") List<String> param, @QueryMap Map<String,String> options);
Run Code Online (Sandbox Code Playgroud)

我只是给了我的 ArrayList id。非常感谢

Bla*_*elt 6

Gson能够处理具有可变键的 JSON 对象,例如您发布的那个。在这种情况下,您必须做的是声明 a Map<String, ModelClass>ModelClass您要表示的 JSONObject 的内容在哪里