Java 在自定义序列化程序中配置objectmapper?
我有一个为特定字段编写的CustomSerializer。我在Java 在自定义序列化程序中配置objectmapper?,java,json,serialization,jackson,objectmapper,Java,Json,Serialization,Jackson,Objectmapper,我有一个为特定字段编写的CustomSerializer。我在ObjectMapper上调用自定义序列化程序,使用某些配置,如WRAP\u ROOT\u VALUE,PropertyNameStrategy,Inclusion.NON\u NULL 现在,在我的自定义序列化程序中,除了一个(WRAP\u ROOT\u VALUE)之外,我在序列化自定义类时需要所有这些属性 公共类CustomSerializer扩展JsonSerializer{ @凌驾 public void序列化(对象obj、
ObjectMapper
上调用自定义序列化程序,使用某些配置,如WRAP\u ROOT\u VALUE
,PropertyNameStrategy
,Inclusion.NON\u NULL
现在,在我的自定义序列化程序中,除了一个(WRAP\u ROOT\u VALUE
)之外,我在序列化自定义类时需要所有这些属性
公共类CustomSerializer扩展JsonSerializer{
@凌驾
public void序列化(对象obj、JsonGenerator jgen、,
SerializerProvider arg2)引发IOException,
JsonProcessingException{
//.......
jgen.writeObject(obj);
//...
}
因此,我的obj
在这里被序列化,根值被包装,这是我不想要的
由于某些原因,我无法编辑我的POJO
如何在CustomSerializer中仅禁用Objectmapper
的单个(或某些)属性??获取Objectmapper
从自定义文件中,您可以通过以下方式获得:
ObjectMapper-mapper=((ObjectMapper)jgen.getCodec());
设置ObjectMapper
您还可以使用以下方法在自定义范围内定义新项目:
ObjectMapper mapper=new ObjectMapper();
jgen.setCodec(映射器);
public class CustomSerializer extends JsonSerializer<Object>{
@Override
public void serialize(Object obj, JsonGenerator jgen,
SerializerProvider arg2) throws IOException,
JsonProcessingException {
//.......
jgen.writeObject(obj);
//...
}