如果我的WS成功,那么得到以下回复
{"status":"SUCCESS","reason":"User phrase returned successfully.","response":{"isValidUser":"1","Phrase":"montu"}}
如果相同的WS失败,则获得以下响应
{"status":"FAILED","reason":"Invalid Username","response":false}
这里我使用gson进行映射。
映射类是
class HomeScreenUserResponse extends Object {
public String status;
public String reason;
public checkUser response;
}
class checkUser {
String isValidUser;
String Phrase;
}
但是,如果Web服务失败,则此映射无效。它只适用于成功。 如何为两种情况设计单一映射类。
答案 0 :(得分:0)
也许是这样的
class Class {
boolean status;
String reason;
Responce responce;
public Class(JSONObject jObject) {
status = jObject.getString("status").equals("SUCCESS") ? true : false;
reason = jObject.getString("reason");
if (status) {
responce = new Responce(jObject.getJSONObject("response"));
} else {
responce = null;
}
}
}
class Responce{
String isValidUser;
String Phrase;
public Responce(JSONObject jObject){
//Loading json data
}
}
答案 1 :(得分:0)
您应该为此类型注册自定义类型适配器。您需要检查“响应”的值,并根据是对象还是布尔值来表现不同。