java - 我可以让所有二传手不可见,但一个使用杰克逊?
问题描述
我有一个旧类,其中包含许多要从 JSON 转换为 JSON 的字段。二传手不纯,所以我让所有二传手不可见。
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE);
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
objectMapper.setVisibility(PropertyAccessor.CREATOR, JsonAutoDetect.Visibility.ANY);
但是有一个设置器实际上设置了两个字段,我需要让它可见。
private String a;
private transient String b;
public void setA(String a)
{
this.a = a;
this.b = convertFrom(a);
}
所有的二传手都是公开的。如何使所有二传手不可见,但只有一个二传手可见?
解决方案
建议编辑:正如 ExceptionHandler 建议的那样,您可以通过两种方式忽略属性:
- 班级水平
- 场级
由于您不想执行繁琐的字段级别任务,因此可以通过忽略字段的类级别来完成,如下所示:
@JsonIgnoreProperties
您可以忽略在类级别使用注释指定的所有字段或字段。只是不要提及field/s
您要反序列化的对象。像这样:
@JsonIgnoreProperties({ "field1", "field2", "field3" })
public class YourClass{
private String field1;
private String field2;
private String field3;
...
}
推荐阅读
- snowflake-cloud-data-platform - 批量复制同一个桶时雪花需要抛出错误
- javascript - 无法使用 JS 加载大于 2MB 的 PDF 文件
- typescript - 为什么打字稿不能识别颜色 npm 包?
- phpmyadmin - PHPMyAdmin 显示中的数据列宽度
- python - 使用 cache.put() 将 Dataframe 存储在 ignite 缓存中
- git - Github 合并到后面的分支
- reactjs - 值不会出现在状态中(反应)
- css - 如何让我的css循环而不重新开始?
- javascript - 给用户的私信
- jenkins - 如何动态创建阶段/连接闭包?