2016-03-03 66 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;