【问题标题】:Jersey & Jackson - Resource modifying Jackson outputJersey & Jackson - 修改 Jackson 输出的资源
【发布时间】:2012-05-30 08:26:31
【问题描述】:

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

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

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

【问题讨论】:

    标签: java rest jersey jax-rs 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);
       }
       ...
    }
    

    你在找什么?

    【讨论】:

    • 问题是访问 objectMapper。
    • 遇到同样的问题,如何获取objectMapper?
    • 对象映射器通常是共享的,因此您不应该根据每个请求更改配置。在stackoverflow.com/questions/18872931/…,您可以了解如何拥有自定义对象映射器以及如何访问它。
    猜你喜欢
    • 2015-03-10
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 2013-05-28
    • 2018-10-13
    • 2016-05-11
    • 2016-11-05
    • 1970-01-01
    相关资源
    最近更新 更多