Retrofit,如何解析JSON objects with variable keys

Retrofit, how to parse JSON objects with variable keys

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

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

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

{
  "long_hash_id": {
    "_id": "long_hash_id"
    .......
  },
  "long_hash_id": {
    "_id": "long_hash_id",
    .....
  },
  ........
}

"long_hash_id" 是典型的“525558cf8ecd651095af7954” 它对应于附加到它的用户的 id。

在没有使用retrofit的时候,我是用stream方式的Gson,逐一获取每个用户。但是不知道retrofit怎么说。

希望我清楚并且 提前谢谢你。

------------ 解决方案:

我是这样制作界面的:

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

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

Gson 能够处理 JSON 带有可变键的对象,就像您发布的那样。在这种情况下,您需要做的是声明一个 Map<String, ModelClass>,其中 ModelClass 是您要表示的 JSON 对象的内容