1

如果我的 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 服务失败,则此映射不起作用。它仅适用于 ws 成功。如何为这两种情况设计单个映射类。

4

2 回答 2

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
  }
}
于 2012-04-24T11:31:53.587 回答
0

您应该为此类型注册一个自定义类型适配器。您需要检查“响应”的值,并根据它是对象还是布尔值而表现出不同的行为。

于 2012-04-24T13:26:09.243 回答