2012-05-23 24 views
6

Tôi hiện đang sử dụng Jersey & Jackson để tạo dịch vụ REST. Ngay bây giờ khi một phương thức Resource tạo ra ứng dụng/json và được trả về một POJO, nó sẽ tuần tự hóa đúng đối tượng vào JSON và trả về đáp ứng cho máy khách. Những gì tôi đang muốn làm bây giờ là thiết lập Jersey vì vậy khi một queryparam đến (cho phép nói "thụt lề"), tôi có thể nói cho Jackson để tuần tự hóa JSON trong một "định dạng đẹp hơn, hay còn gọi là thụt lề". Bạn có thể dễ dàng yêu cầu Jackson thực hiện việc này bằng cách định cấu hình trình ánh xạ JSON với SerializationConfig.Feature.INDENT_OUTPUT.Jersey & Jackson - Tài nguyên sửa đổi đầu ra của Jackson

Câu hỏi đặt ra là, làm thế nào để tôi trên cơ sở theo yêu cầu có một queryparam và sử dụng điều đó để sửa đổi đầu ra của Jackson?

Trả lời

1

Something như thế này:

@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); 
    } 
    ... 
} 

phải là những gì bạn đang tìm kiếm?

+1

Sự cố đang truy cập vào objectMapper. – William

+0

Có cùng một vấn đề, làm thế nào để có được objectMapper? –

+1

đối tượng ánh xạ thường được chia sẻ, do đó bạn không nên thay đổi cấu hình theo yêu cầu. Trong http://stackoverflow.com/questions/18872931/custom-objectmapper-with-jersey-2-2-and-jackson-2-1 bạn có thể có được ý tưởng về cách có trình ánh xạ đối tượng tùy chỉnh và cách truy cập vào nó. –

Các vấn đề liên quan