【发布时间】:2018-01-28 10:33:32
【问题描述】:
我是 java 新手,使用 jersey 框架在 netbeans 中创建了一些 Restful 服务。
我创建了许多 GET、POST Web 服务,它们具有不同类型的响应,这些响应基本上是模型对象,并且取决于媒体类型,我得到的是 JSON 或 XML。
有些响应只有一个对象,它在 {} 内的 JSON 中显示,有些是在 [] 中的列表。 我想查看所有 api 响应的通用响应格式。
示例- {"status":"0 or 1", "message":"any string message","result":"它可以是单个对象或对象列表,根据每个 Web 服务响应是动态的"}.
由于在 java 中我们需要创建模型对象来获取响应,所以我创建了一个 ResponseModel,它具有状态属性、消息属性但不知道结果属性的类型,因为有时它可以有一个对象或有时是一个列表,所以我应该为这个属性设置什么类型,以便我可以为它分配任何东西,并且响应对于 JSON 或 XML 将始终采用相同的格式。
我创建了一个带有构造函数的静态方法,它接受所有这三个参数并创建一个 ResponseModel 对象。
提前致谢
EDITED- 使用“对象”作为泛型类型后的代码
public static Response getResponseObjectIsValid(boolean isValid, String message,Object result)
{
if (isValid == true) {
LGSResponse response = new LGSResponse();
response.setStatus(1);
response.setMessage(message.length()>0 ? message : "Success");
response.setResult(result);
return Response.status(Status.OK).entity(response).build();
}
else
{
LGSResponse response = new LGSResponse();
response.setStatus(1);
response.setMessage(message.length()>0 ? message : "Failed");
response.setResult(result);
return Response.status(Status.OK).entity(response).build();
}
}
Result Parameter 是一个普通的模型对象。
【问题讨论】:
-
不能把result的类型设置为“Object”,那么在需要用到的地方,可以查看是List类型,还是Map类型
标签: java json web-services generics jersey