2012-05-23 4 views
6

현재 REST 서비스 생성을 위해 Jersey & Jackson을 사용하고 있습니다. 현재 Resource 메소드가 application/json을 생성하고 POJO가 반환되면 객체를 JSON으로 적절하게 직렬화하고 응답을 클라이언트에 리턴합니다.Jersey & Jackson - 리소스 수정 Jackson 출력

내가 지금하고 싶은 것은 저어지입니다. queryparam이 올 때 ("들여 쓰기"라고 말하면서) 잭슨에게 "더 예쁜 형식, 일명 들여 쓰기"로 JSON을 직렬화하도록 말할 수 있습니다. SerializationConfig.Feature.INDENT_OUTPUT을 사용하여 JSON 매퍼를 구성하여 Jackson에게 쉽게 알릴 수 있습니다.

질문은 어떻게하면 요청 단위로 queryparam을 사용하고 Jackson의 출력을 수정하는 데 사용할 수 있습니까? 이 같은

답변

1

뭔가 :

@GET 
@Path("path/to/rest/service") 
@Produces("application/json") 
public Response getSomething(
     @DefaultValue("false") @QueryParam("indent") boolean indent, ...) { 
    ... 
    if (indent) { 
     objectMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); 
    } 
    ... 
} 

당신이 찾고 무엇입니까?

+1

문제는 objectMapper에 액세스하고 있습니다. – William

+0

같은 문제가 있는데 objectMapper를 얻는 방법은 무엇입니까? –

+1

개체 매퍼는 일반적으로 공유되므로 요청 기반별로 구성을 변경하면 안됩니다. http://stackoverflow.com/questions/18872931/custom-objectmapper-with-jersey-2-2-and-jackson-2-1에서 사용자 정의 객체 매퍼를 갖는 방법과 그것에 접근 할 수있는 방법을 알 수 있습니다. –