2016-12-08 2 views
1

메시지 본문에 다음과 같은 HTTP 요청의 일부로 전달 될 JSON이 있습니다.JAX-RS REST 메서드에서 JSON 메시지 본문을 검색하는 방법은 무엇입니까?

{ 
    "names": [ 
     { 
      "id":"<number>", 
      "name":"<string>", 
      "type":"<string>", 
     } 
    ] 
} 

현재 내 REST 처리기는 다음과 같습니다. Id 및 Path 매개 변수로 전달 된 버전을 가져올 수 있지만 메시지 본문에있는 내용을 검색하는 방법을 모르겠습니다.

 @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 프레임 워크를 사용하고 있습니다. 난 당신이 경우 요소의 목록을 검색하려는 가정

@PUT 
@Consumes("application/json") 
@Path("/Id/{Id}/version/{version}/addPerson") 
public Response addPerson(@PathParam("Id") String Id, 
          @PathParam("version") String version, 
          List<NamObj> names) { 

:

, 여기에 예를 들어
+0

어떤 웹 프레임 워크는 당신이 사용하고 있습니까? –

+0

Jax RS는 내가 사용하고있는 프레임 워크입니다 – java123999

+0

POST 요청에 대해 어떻게 했습니까? 1) 메서드에 @Consumes ("application/json")이 필요하다고 생각합니다. 본체 및 기타 정보를 얻을 수있는 @ Context 매개 변수를 추가 할 수 있어야합니다. –

답변

1
당신은 단지 POJO에 이름 JSON을지도하고 풋 방법 @Consumes 주석을 추가 할 필요가

입니다 이 사건을 param에서 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

+0

Ok 매개 변수 내에서 List에 @Context 주석이 필요하지 않습니까? – java123999

+0

필요 없다고 생각합니다. 컨텍스트에 직접 액세스 할 필요가 없습니다. jax-rs가 json 개체를 메서드에 검색하고 json 파서가 목록에 매핑합니다. –

+0

Xml 주석은 json 문서에서 작동합니까? –