【问题标题】:How to ignore pojo annotations while using Jackson ObjectMapper?使用 Jackson ObjectMapper 时如何忽略 pojo 注释?
【发布时间】:2015-10-19 05:30:42
【问题描述】:

我有一个带有 Jackson 注释的 POJO

     public class Sample{

        private String property1;

        @JsonIgnore
        private String property2;

        //...setters getters

     }

因此,当其他框架(例如 RestEasy)使用 Jackson 库进行自动编组时,这些注释有助于指导序列化和反序列化过程。

但是当我想使用 ObjectMapper mapper = new ObjectMapper() 显式序列化时,我不希望这些注释产生任何影响,而是根据我的要求配置映射器对象。

那么,在使用 ObjectMapper 时,如何让注解不起作用?

【问题讨论】:

    标签: java json jackson


    【解决方案1】:

    您好,如果您使用的是 com.fasterxml.jackson,那么代码是 -

    ObjectMapper mapper = new ObjectMapper().configure(MapperFeature.USE_ANNOTATIONS, true);
    

    【讨论】:

    • 或mapper.disable(MapperFeature.USE_ANNOTATIONS);
    【解决方案2】:

    配置您的 ObjectMapper 不使用这些注释,如下所示:

    ObjectMapper objectMapper = new ObjectMapper().configure(
                     org.codehaus.jackson.map.DeserializationConfig.Feature.USE_ANNOTATIONS, false)
                        .configure(org.codehaus.jackson.map.SerializationConfig.Feature.USE_ANNOTATIONS, false);
    

    这行得通!

    【讨论】:

    • 当我写这篇文章时,我得到了The method configure(MapperFeature, boolean) in the type ObjectMapper is not applicable for the arguments (DeserializationConfig.Feature, boolean)。有什么建议吗?
    • @MahmoudMubarak 这个答案适用于杰克逊的 codehaus 版本。如果您使用的是fastxml,请参阅上面的答案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多