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

この型のカスタム型アダプターを登録する必要があります。「response」の値を検査し、それがオブジェクトかブール値かによって異なる動作をする必要があります。

于 2012-04-24T13:26:09.243 に答える