我的POJO类在字段的声明上有@JsonIgnore
,而不是在getter和setter方法上。这是一个生成的文件,我不能在其中进行太多的更改。
如何在使用JsonGenerator.Setting
编写时忽略该字段?在getter和setter上使用@JsonIgnore
是可行的。但是不能修改生成的POJO类。
发布于 2016-09-30 03:48:08
将Jackson配置为仅使用字段注释
一旦将注释放在字段上,就可以将ObjectMapper
配置为只使用字段注释,而忽略getters和setters方法的注释:
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE);
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
Jackson混合注释
当修改POJO不是一种选择时,这是一个很好的选择。您可以认为它是一种面向方面的方法,可以在运行时添加更多的注释,以增强静态定义的注释。
定义一个混合注释接口(类也可以):
public interface FooMixIn {
@JsonIgnore
String getBar();
}
然后将ObjectMapper
配置为使用定义的接口(或类)作为POJO的混合:
ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT)
.addMixIn(Foo.class, FooMixIn.class);
以下是一些使用方面的注意事项:
private
,protected
,.)方法实现被忽略。有关更多细节,请查看此页面。
发布于 2016-09-30 03:17:14
将这些字段定义为transients
,避免它们被序列化,而不管您对json使用什么注释.
https://stackoverflow.com/questions/39789935
复制