同时使用@JsonSerializer和@JsonView

时间:2016-03-11 04:32:27

标签: json jackson jax-rs

我正在使用jax-rs在REST API的@JsonView方法上定义@GET。在其中一个返回的对象中,我使用@JsonSerializer定义了自定义序列化程序。它上面还有@JsonView。我意识到即使对象没有包含在GET上定义的JsonView中,它仍然序列化对象但不包括在JSON响应中。问题是,由于序列化对象的类型,在序列化期间将不必要地调用额外(和慢)代码。当我尝试getActiveView()传递到我的自定义序列化程序时{I}},我得到null。在不知情的情况下,我不确定如何跳过序列化过程。当自定义序列化程序被调用时,单步执行整个Jackson调用堆栈,我看不到任何迹象表明它知道端点上设置的视图。

假设我没有完全关闭我的方法,我怎么知道在自定义序列化器中的端点上设置了什么(如果有的话)?

帮助可视化问题 -

示例端点

SerializerProvider

带注释的POJO -

    @GET
    @JsonView(Views.AView.class)
    public Response getSomething(...) {
        ...
    }

最后 -

...
@JsonSerialize(using = ASerializer.class)
@JsonView(Views.AView.class)
private Set<Stuff> stuffList;
...

1 个答案:

答案 0 :(得分:0)

序列化程序可以获得视图。

-