【问题标题】:Configure objectmapper inside Custom serializer jackson?在自定义序列化程序杰克逊中配置 objectmapper?
【发布时间】:2016-12-18 04:36:07
【问题描述】:

我为特定字段编写了一个 CustomSerializer。我使用 WRAP_ROOT_VALUEPropertyNameStrategyInclusion.NON_NULL 等特定配置在 ObjectMapper 上调用自定义序列化程序。

现在在我的自定义序列化程序中,我想要所有这些属性,同时序列化我的自定义类,除了一个 (WRAP_ROOT_VALUE)。

public class CustomSerializer extends JsonSerializer<Object>{

    @Override
    public void serialize(Object obj, JsonGenerator jgen,
            SerializerProvider arg2) throws IOException,
            JsonProcessingException {
//.......
        jgen.writeObject(obj);
//...       
    }

所以我的obj 在这里被序列化,并包装了我不想要的根值。

由于某种原因,我无法编辑我的 POJO。

如何在 CustomSerializer 中仅禁用 Objectmapper 的单个(或部分)属性???

【问题讨论】:

    标签: java json serialization jackson objectmapper


    【解决方案1】:

    获取ObjectMapper

    从自定义JsonSerializer 中,您可以使用以下方法获取ObjectMapper

    ObjectMapper mapper = ((ObjectMapper) jgen.getCodec());
    

    设置ObjectMapper

    您还可以使用以下方法在自定义 JsonSerializer 中定义新的 ObjectMapper

    ObjectMapper mapper = new ObjectMapper();
    jgen.setCodec(mapper);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-03
      • 2016-02-19
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多