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

7

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

现在我想做的是设置Jersey,以便当查询参数进来(比如说“indent”)时,我可以告诉Jackson以更漂亮的格式(即缩进)序列化JSON。 您可以通过配置带有SerializationConfig.Feature.INDENT_OUTPUT的JSON映射器轻松地告诉Jackson执行此操作。

问题是,如何在每个请求的基础上获取查询参数并使用它来修改Jackson的输出?

1个回答

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
遇到同样的问题,如何获取objectMapper? - Jurica Krizanic
1
对象映射器通常是共享的,因此您不应该在每个请求基础上更改配置。在https://dev59.com/1GMk5IYBdhLWcg3w5R2k中,您可以了解如何拥有自定义对象映射器以及如何访问它的想法。 - Igor Cunko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接