gpt4 book ai didi

android - 如何处理 Retrofit 2 中可能不同类型的响应

转载 作者:太空狗 更新时间:2023-10-29 13:56:27 25 4
gpt4 key购买 nike

在 WebApi 中返回的 JSON 的字段可以是不同的类:

{ someField:"some string" }
{ someField: { "en" : "some string", "ka" : "რამე სტრინგი" } }

我见过一些解决方案,但它是在以前版本的 Retrofit 上。

我的 pojo 类会是什么样子,我可以用什么来解析这个动态 json?

最佳答案

对于您的情况,您可以使用 Call<JsonElement>作为响应类型并在响应中解析它:

call.enqueue(new Callback<JsonElement>() {
@Override
public void onResponse(Call<JsonElement> call, Response<JsonElement> response) {
if(response.isSuccessful()){
JsonElement jsonElement = response.body();
if(jsonElement.isJsonObject()){
JsonObject objectWhichYouNeed = jsonElement.getAsJsonObject();
}
// or you can use jsonElement.getAsJsonArray() method
//use any json deserializer to convert to your class.
}
else{
System.out.println(response.message());
}
}
@Override
public void onFailure(Call<JsonElement> call, Throwable t) {
System.out.println("Failed");
}
});

关于android - 如何处理 Retrofit 2 中可能不同类型的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39287515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com