Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在自定义序列化程序中配置objectmapper?_Java_Json_Serialization_Jackson_Objectmapper - Fatal编程技术网

Java 在自定义序列化程序中配置objectmapper?

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、

我有一个为特定字段编写的CustomSerializer。我在
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);
//...       
    }