默认的 jackon 行为似乎同时使用属性(getter 和 setter)和字段来序列化和反序列化为 json。
我想使用这些字段作为序列化配置的规范源,因此根本不希望 jackson 查看属性。
我可以使用注释在单个类的基础上执行此操作:
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
但我不想把这个放在每个类(class)上......
是否可以全局配置?想添加一些到对象映射器吗?
最佳答案
您可以像这样配置单独的 ObjectMappers:
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker()
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE));
如果您希望它全局设置,我通常通过包装类访问配置的映射器。
关于java - 如何指定 Jackson 仅使用字段 - 最好是全局的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58868182/