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 对象的内容
首先我知道我的标题不好,因为我没有想出更好的,我愿意接受建议。
我正在使用改装从这种 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 对象的内容