2012-05-23 30 views
6

Şu anda REST servisi oluşturmak için Jersey & Jackson kullanıyorum. Şu anda bir Kaynak yöntemi, uygulama/json oluşturduğunda ve bir POJO'yu döndürdüğünde, nesneyi JSON'a uygun şekilde seri hale getirir ve istemciye yanıtı döndürür.Jersey & Jackson - Kaynak değiştirici Jackson çıkışı

Şu anda yapmak istediğim şey Jersey'tir, bu yüzden bir sorguparam geldiğinde ("girintiyi söyleyin"), Jackson'a JSON'u "daha hoş bir şekilde, daha önce girintili bir biçimde" seri hale getirmesini söyleyebilirim. Jackson'a SerializationConfig.Feature.INDENT_OUTPUT ile JSON eşleştiricisini yapılandırarak bunu kolayca söyleyebilirsiniz.

Soru, istek temelinde nasıl bir sorgulama alır ve bunu Jackson'ın çıktısını değiştirmek için kullanırım? Böyle

cevap

1

şey:

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

Aradığınız şey bu mu?

+1

Sorun, objectMapper'a erişmektir. – William

+0

Aynı soruna sahip olmak, objectMapper nasıl edinilir? –

+1

nesne eşleştiricisi genellikle paylaşılır; bu nedenle, istek tabanı başına yapılandırmayı değiştirmemelisiniz. Http://stackoverflow.com/questions/18872931/custom-objectmapper-with-jersey-2-2-and-jackson-2-1 adresinde, özel nesne eşleştiricisine nasıl sahip olacağınız ve buna nasıl erişilebileceği hakkında fikir edinebilirsiniz. –