我有时遇到API的响应是
{
"SuccessCode": "OPERATION_SUCCESS",
"Message": "Operation completed successfully"
}
有时,响应是
{
"FaultId": "User already exists",
"fault": "FAULT_USER_ALREADY_EXISTS"
}
我如何以通用的方式反序列化以适应各种不同的响应?
public class Successful {
private String SuccessCode; // or successCode as usually done in java + annotation to map the json field
private String Message;
... getters, setters ...
}
public class Faulty {
private String FaultId;
private String fault;
... getters, setters ...
}
然后,假设成功的响应具有http状态代码200,否则是错误的,您可以:
Response resp = when().get(<SOME_URL_GOES_HERE); if(resp.getStatusCode () == 200) { Successful respSuccess = resp.body().as(Successful.class); } else { Faulty faulty = resp.body().as(Faulty.class); }