Java 忽略字段而不使用Jackson修改POJO类

Java 忽略字段而不使用Jackson修改POJO类,java,json,jackson,Java,Json,Jackson,我的POJO类在字段声明上有@JsonIgnore,而不是在getter和setter方法上。这是一个生成的文件,我不能在其中做太多更改 在使用JsonGenerator.Setting编写时,如何忽略该字段?在getter和setter上使用@JsonIgnore是有效的。但无法修改生成的POJO类。使用将这些字段定义为瞬态,避免将其序列化 无论您使用什么json注释…将Jackson配置为仅使用字段注释 在字段上放置注释后,可以将ObjectMapper配置为仅使用字段注释,而忽略gette

我的POJO类在字段声明上有@JsonIgnore,而不是在getter和setter方法上。这是一个生成的文件,我不能在其中做太多更改

在使用JsonGenerator.Setting编写时,如何忽略该字段?在getter和setter上使用@JsonIgnore是有效的。但无法修改生成的POJO类。

使用将这些字段定义为瞬态,避免将其序列化 无论您使用什么json注释…

将Jackson配置为仅使用字段注释 在字段上放置注释后,可以将ObjectMapper配置为仅使用字段注释,而忽略getter和setter方法的注释:

ObjectMapper mapper=新的ObjectMapper; mapper.setVisibilityPropertyAccessor.ALL,Visibility.NONE; mapper.setVisibilityPropertyAccessor.FIELD,Visibility.ANY; Jackson混合注释 当不需要修改POJO时,这是一个很好的选择。您可以将其视为一种面向方面的方式,在运行时添加更多注释,以增强静态定义的注释

在注释接口类中定义混合也可以:

公共接口FooMixIn{ @杰索尼奥雷 字符串getBar; } 然后配置ObjectMapper,将定义的接口或类用作POJO的混合:

ObjectMapper mapper=新的ObjectMapper.enableSerializationFeature.INDENT\u输出 .addMixInFoo.class,FooMixIn.class; 以下是一些使用注意事项:

Jackson识别的所有注释集都可以混合使用。 可以混合使用各种注释—成员方法、静态方法、字段、构造函数注释。 只有方法、字段名和签名用于匹配注释:访问定义私有、受保护。。。方法实现被忽略。
有关更多详细信息,请选中此项。

生成类后,请将该属性设置为null。这些值是从数据库中设置的。我只想使用JsonGenerator忽略这些字段。i、 我想忽略它们,即使它们有值。你是想生成对象列表还是单个对象?你尝试过我在中提到的方法吗?你能让我知道它是否有效吗?你的意思是你在课堂上有10个变量,并且提供的数据可能不包含10个变量。在这种情况下,在类的顶部给出@JsonIgnorePropertiesignoreUnknown=true。无法修改生成的类。