android - 如何为gson设计映射类

时间:2012-04-24 10:51:05

标签: android gson

如果我的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服务失败,则此映射无效。它只适用于成功。 如何为两种情况设计单一映射类。

2 个答案:

答案 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)

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