在 Web Api 中返回 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");
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)