我有一个注册的网络服务。我对此响应代码200有成功的回复
{
"data": {
"email": "azadbar@yahoo.com"
},
"code": 201,
"success": true
}
我的错误响应代码422就像这样
{
"message": "The given data was invalid.",
"errors": {
"email": [
"The email has already been taken."
]
}
}
但是当我也遇到密码问题时,响应错误显示我这样
{
"message": "The given data was invalid.",
"errors": {
"email": [
"The email must be a valid email address."
],
"password": [
"The password must be at least 6 characters.",
"The password confirmation does not match."
]
}
}
问题是某些时间显示某些字段并且有些时间消失了。而且我们也有一些响应模型,在改造界面中我们应该只有一个响应,如下面的示例中的RegisterResponse
@POST("/api/v1/register")
Call<RegisterResponse> register(@Body RegisterRequest request);
我该如何处理这种反应?
答案 0 :(得分:1)
您需要创建一个 pojo,这意味着名称为RegisterResponse 的模型类将具有您在JSON响应中获得的属性。所以,根据你的例子情况,它会像:
Class RegisterResponse{
private Data data;
private String code;
private Boolean success;
private String message;
private Error errors;
}
Class Data{
private String email;
}
Class Error{
private List<String> email;
private List<String> password;
}
现在在每个类中,您需要为包含的每个属性创建getter和setter。 因此,当响应到来时,相应地处理它意味着如果它为null,则将该属性设置为null,否则设置相应属性的接收值
答案 1 :(得分:-1)
您需要创建一个包含所有可能字段的模型,并根据结果将某些字段填充或为空。
class Model{
private Data data;
private int code;
private boolean success;
private Errors errors;
private String message;
public isSuccess(){
return success;
}
....
}