java如何检查RestTemplate对JSON字符串的错误和成功案例的响应?
我正在做一个项目,在这个项目中,我对我的服务器进行rest url调用,并返回一个JSON字符串作为响应。如果服务有任何问题,它会给出以下JSON字符串中的任何一个作为响应-
{"error":"no user_id passed"}
or
{"warning": "user_id not found", "user_id": some_user_id}
or
{"error": "user_id for wrong partition", "user_id": some_user_id, "partition": some_partition}
or
{"error":"no client_id passed"}
or
{"error": "missing client id", "client_id":2000}
下面是我调用的代码,这里response
变量将包含上面的JSON字符串,如果服务端出现问题,但如果是成功响应,那么它将不包含上面的任何JSON字符串。它将是一个包含正确数据的有效JSON字符串,但成功响应的JSON字符串与上面的错误案例JSON字符串完全不同,因此我不能使用相同的POJO
RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.getForObject(url, String.class);
// check response here as it will have above error JSON String if
// something has gone wrong on the server side, and some other data if it is a success
如果响应包含上面的任何JSON字符串,我需要记录一个错误,因为这是一个错误,但是如果它不包含上面的JSON字符串,那么就记录为成功
注意:如果服务的响应不成功,那么JSON字符串中的第一个键将包含错误和警告。。但如果成功,它将在JSON字符串中保存正确的数据
解决这个问题最简单有效的方法是什么
# 1 楼答案
如果在成功时返回不同的响应,并且不包含键“error”,则此操作有效