泽西和杰克逊 - 资源修改杰克逊输出

Wil*_*iam 7 java rest jax-rs jersey jackson

我目前正在使用Jersey&Jackson来创建REST服务.现在,当Resource方法生成application/json并返回POJO时,它正确地将对象序列化为JSON并将响应返回给客户端.

我现在要做的就是设置Jersey,所以当一个查询参数进来时(比如说"缩进"),我可以告诉杰克逊以"更漂亮的格式,也就是缩进"来序列化JSON.您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器,轻松告诉Jackson执行此操作.

问题是,我如何根据请求获取查询参数并使用它来修改杰克逊的输出?

Ale*_*aev 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);
   }
   ...
}
Run Code Online (Sandbox Code Playgroud)

是您要找的吗?