如何在 JAX-RS REST 方法中检索 JSON 消息体?
How to retrieve the JSON message body in JAX-RS REST method?
我有以下 JSON
将作为 HTTP 请求的一部分在邮件正文中传递。
{
"names": [
{
"id":"<number>",
"name":"<string>",
"type":"<string>",
}
]
}
我当前的 REST
处理程序如下。我能够获取作为路径参数传入的 Id 和 `Version,但我不确定如何检索消息正文中的 内容 ?
@PUT
@Path("/Id/{Id}/version/{version}/addPerson")
public Response addPerson(@PathParam("Id") String Id,
@PathParam("version") String version) {
if (isNull(Id) || isEmpty(version)) {
return ResponseBuilder.badRequest().build();
}
//HOW TO RECIEVE MESSAGE BODY?
//carry out PUT request and return DTO: code not shown to keep example simple
if (dto.isSuccess()) {
return Response.ok().build();
} else {
return Response.serverError().build();
}
}
注意:我正在使用 JAX-RS
框架。
你只需要将你的名字 json 映射到一个 POJO 并在你的 put 方法中添加 @Consumes 注释,这是一个例子:
@PUT
@Consumes("application/json")
@Path("/Id/{Id}/version/{version}/addPerson")
public Response addPerson(@PathParam("Id") String Id,
@PathParam("version") String version,
List<NamObj> names) {
我假设您正在尝试检索元素列表,如果不是这种情况,只需在参数中使用您的 POJO。
根据您在服务器中使用的 json 库,您可能需要向 POJO 添加 @xml 注释,以便解析器知道如何映射请求,这就是示例 json 的映射应如下所示:
@XmlRootElement
public class NameObj {
@XmlElement public int id;
@XmlElement public String name;
@XmlElement public String type;
}
泽西岛医生:https://jersey.java.net/documentation/latest/user-guide.html#json
@cosumes 参考:http://docs.oracle.com/javaee/6/tutorial/doc/gilik.html#gipyt
我有以下 JSON
将作为 HTTP 请求的一部分在邮件正文中传递。
{
"names": [
{
"id":"<number>",
"name":"<string>",
"type":"<string>",
}
]
}
我当前的 REST
处理程序如下。我能够获取作为路径参数传入的 Id 和 `Version,但我不确定如何检索消息正文中的 内容 ?
@PUT
@Path("/Id/{Id}/version/{version}/addPerson")
public Response addPerson(@PathParam("Id") String Id,
@PathParam("version") String version) {
if (isNull(Id) || isEmpty(version)) {
return ResponseBuilder.badRequest().build();
}
//HOW TO RECIEVE MESSAGE BODY?
//carry out PUT request and return DTO: code not shown to keep example simple
if (dto.isSuccess()) {
return Response.ok().build();
} else {
return Response.serverError().build();
}
}
注意:我正在使用 JAX-RS
框架。
你只需要将你的名字 json 映射到一个 POJO 并在你的 put 方法中添加 @Consumes 注释,这是一个例子:
@PUT
@Consumes("application/json")
@Path("/Id/{Id}/version/{version}/addPerson")
public Response addPerson(@PathParam("Id") String Id,
@PathParam("version") String version,
List<NamObj> names) {
我假设您正在尝试检索元素列表,如果不是这种情况,只需在参数中使用您的 POJO。
根据您在服务器中使用的 json 库,您可能需要向 POJO 添加 @xml 注释,以便解析器知道如何映射请求,这就是示例 json 的映射应如下所示:
@XmlRootElement
public class NameObj {
@XmlElement public int id;
@XmlElement public String name;
@XmlElement public String type;
}
泽西岛医生:https://jersey.java.net/documentation/latest/user-guide.html#json
@cosumes 参考:http://docs.oracle.com/javaee/6/tutorial/doc/gilik.html#gipyt