2017-07-04 13 views
0

をREPONSE:{URL} /ログイン[レトロフィット] [アンドロイド]標準JSONと各モデルのオブジェクトを解析私は標準のJSON応答のretrofit2 で働い

{ 
    "message": "succesfully", 
    "status_code": "100", 
    "data":{ 
    "token":"jiur02Pje9", 
    "username":"usertest", 
    "id":"jlow81" 
    } 
} 

と別のAPI:

{ 
    "message": "get information succesfully", 
    "status_code": 100, 
    "data": { 
    "username": "usertest02", 
    "phone": "1111111", 
    "image": "http://test/1.jpg", 
    "online_status": 1 
    } 
} 

私は

String message; 
int statusCode; 
Object data; 
ファイルモデルに

BaseData.javaを作成します

UserInformation.java(フィールド:ユーザ名、画像...):ユーザ情報及び認証対象に、[データ]を解析する方法(トークン、ID、ユーザ名...フィールド)

Authentication.java

ありがとうございます。

+0

GSONを試してみましたか? –

+0

両方のAPI用に別々のモデルを作成できないのはなぜですか? –

+0

@ Vlad Matvienkoはい、私はgsonを使ってみました –

答えて

0

これにはさまざまな方法があります。あなたはGson

あなたのPOJOクラスのようなサードパーティのライブラリを進めることができます

は、POJOコンバータにAndroidのプラグインやオンラインJSONを使用し、多少のようになります。今

public class Response { 

    @SerializedName("data") 
    private Data mData; 
    @SerializedName("message") 
    private String mMessage; 
    @SerializedName("status_code") 
    private String mStatusCode; 

    public Data getData() { 
     return mData; 
    } 

    public void setData(Data data) { 
     mData = data; 
    } 

    public String getMessage() { 
     return mMessage; 
    } 

    public void setMessage(String message) { 
     mMessage = message; 
    } 

    public String getStatusCode() { 
     return mStatusCode; 
    } 

    public void setStatusCode(String statusCode) { 
     mStatusCode = statusCode; 
    } 

    public class Data { 

     @SerializedName("image") 
     private String mImage; 
     @SerializedName("online_status") 
     private Long mOnlineStatus; 
     @SerializedName("phone") 
     private String mPhone; 
     @SerializedName("username") 
     private String mUsername; 
     @SerializedName("token") 
     private String mToken; 
     @SerializedName("id") 
     private String mId; 
     public String getImage() { 
      return mImage; 
     } 

     public void setImage(String image) { 
      mImage = image; 
     } 

     public Long getOnlineStatus() { 
      return mOnlineStatus; 
     } 

     public void setOnlineStatus(Long onlineStatus) { 
      mOnlineStatus = onlineStatus; 
     } 

     public String getPhone() { 
      return mPhone; 
     } 

     public void setPhone(String phone) { 
      mPhone = phone; 
     } 

     public String getUsername() { 
      return mUsername; 
     } 

     public void setUsername(String username) { 
      mUsername = username; 
     } 

     public String getmToken() { 
      return mToken; 
     } 

     public void setmToken(String mToken) { 
      this.mToken = mToken; 
     } 

     public String getmId() { 
      return mId; 
     } 

     public void setmId(String mId) { 
      this.mId = mId; 
     } 
    } 

} 

としてGsonを使用し、POJOをJSON文字列を変換する - あなたは同じレスポンスクラスを使用することができ、またはあなたはPARAMとリターンとしてレスポンスがかかりますマッパークラスを持つことができます

Gson gson = new Gson(); 
Response response = gson.fromJson(yourresponseStr.toString(), Response.class); 

この方法でコードがもっとあるAuthentication.java

UserInformation.javまたはで状態をマッピングすることにより、さまざまなPOJOのを読み書き可能で、必要なデータだけを使用しています。 また、シリアル化して他のコンポーネントに渡す必要がある場合は、必須フィールドだけを渡します。

+0

あなたの返信ありがとう。しかし、私はそれが明確ではなく、困難を維持していると思います。私のプロジェクトは上記のJSON標準のための20以上のAPIを持っているからです。 –

+0

各apiにバインドするpojoクラスが必要です。共通の基本クラスを用意してください。 – Ritesh

関連する問題