我想在改造中处理不同的JSON响应。他们在json上提供了一定的条件。
我的第一个json是
{
"status":2,
"profileData":{
"profile_id":"100102",
"profile_status":"1",
"fname":"Vijay",
"gender":"Male",
"age":"27",
"height":"19"
},
"msg":"LoginSuccess"
}
此响应是成功登录
我的第二个回应是
{
"status":0,
"profileData":null,
"msg":"One or More parameters are missing"
}
我的第三个回应是
{
"status":1,
"profileData":null,
"msg":"Invalid UserName or Password"
}
我如何在Retrofit 2.0中处理这种情况。在改造1.X中,这可以通过GSON Converter完成,但我们如何在Retrofit 2.0中完成。
答案 0 :(得分:0)
你可以使用这个pojo。
//pojo for your Response
public class ResponsePojo {
private int status;
private String msg;
private ProfileData profileData;
//your getters an setters
}
//Pojo for Profile data
public class ProfileData {
private String height;
private String profile_id;
private String age;
private String profile_status;
private String gender;
private String fname;
//your getters an setters
}
//your response method
public void onResponseMethod(ResponsePojo response) {
if (response.getStatus() == 0) {
//One or More parameters are missing
} else if (response.getStatus() == 1) {
//Invalid UserName or Password
} else if (response.getStatus() == 2) {
//read you profile, as its not null when success.
ProfileData profile=response.getProfileData();
}
}
您的响应并非完全动态,因为某些键只有空值,因为数据对该状态无效。