2016-03-03 40 views
-2

我想在改造中處理不同的JSON響應。他們對提供的json有一定的條件。改造中的動態響應處理2

我的第一個JSON是

{ 
"status":2, 
"profileData":{ 
     "profile_id":"100102", 
     "profile_status":"1", 
     "fname":"Vijay", 
     "gender":"Male", 
     "age":"27", 
     "height":"19" 
    }, 
"msg":"LoginSuccess" 
} 

這種反應是成功登錄

我的第二反應是

{ 
    "status":0, 
    "profileData":null, 
    "msg":"One or More parameters are missing" 
} 

我的第三個反應是

{ 
    "status":1, 
    "profileData":null, 
    "msg":"Invalid UserName or Password" 
} 

哪有我處理這種情況在Retrofit 2.0中的條件。在改進1.X中,可以通過GSON Converter完成,但在Retrofit 2.0中我們該怎麼做。

+0

正如我所說的這個答案是關於改造1.因爲改造2.0刪除回調。我需要創建哪種類型的POJO? –

+0

爲什麼你不能使用回調? http://inthecheesefactory.com/blog/retrofit-2.0/en – Rohit5k2

回答

0

你可以使用這個pojo。

//pojo for your Response 
public class ResponsePojo { 
    private int status; 
    private String msg; 
    private ProfileData profileData; 

    //your getters an setters 

} 

//Pojo for Profile data 
public class ProfileData { 
    private String height; 
    private String profile_id; 
    private String age; 
    private String profile_status; 
    private String gender; 
    private String fname; 

    //your getters an setters 
} 

//your response method 
public void onResponseMethod(ResponsePojo response) { 
    if (response.getStatus() == 0) { 
     //One or More parameters are missing 
    } else if (response.getStatus() == 1) { 
     //Invalid UserName or Password 
    } else if (response.getStatus() == 2) { 
     //read you profile, as its not null when success. 
     ProfileData profile=response.getProfileData(); 
    } 
} 

您的響應不完全是動態的,其中某些鍵只有空值,因爲那裏的數據對該狀態無效。

Happy_Coding;