java - 如何指定 Jackson 仅使用字段 - 最好是全局的

标签 java json jackson

默认的 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/

相关文章:

javascript - 使用另一个 javascript 返回的 json 数据

java - 具有完整 POJO 数据绑定(bind)的 Jackson 自定义过滤器

java - 设计 JSON api 时的内部对象表示

java - 如何在 Play 中切换生产和开发数据库配置?

java - Spring Boot api、接口(interface)和实现的独立模块

javascript - 使用 cakePHP 3 将 JSON 对象保存为具有关联的实体

java - Jackson 对象映射器将 java 映射转换为 json 维护键的顺序

java - Libgdx - 触摸按钮时如何退出应用程序?

java - Android 加密/解密 sqlite 数据库 100% 安全

php - 如何在php中设置http响应状态码和消息