在Custom serializer jackson中配置objectmapper?

Sid*_*kha 3 java serialization json jackson objectmapper

我有一个CustomSerializer用于编写特定字段.我呼吁的自定义序列化ObjectMapper与像某些配置WRAP_ROOT_VALUE,PropertyNameStrategy,Inclusion.NON_NULL.

现在在我的自定义序列化程序中,除了one(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);
//...       
    }
Run Code Online (Sandbox Code Playgroud)

所以我的obj这里被序列化了root值包装,我不想要.

我出于某种原因无法编辑我的POJO.

如何禁用ObjectmapperCustomSerializer中的单个(或某些)属性???

cas*_*lin 7

获得 ObjectMapper

在自定义内JsonSerializer,您可以获得ObjectMapper使用:

ObjectMapper mapper = ((ObjectMapper) jgen.getCodec());
Run Code Online (Sandbox Code Playgroud)

设置 ObjectMapper

您还可以使用以下内容ObjectMapper在自定义中定义新内容JsonSerializer:

ObjectMapper mapper = new ObjectMapper();
jgen.setCodec(mapper);
Run Code Online (Sandbox Code Playgroud)