我可以使所有的二传手都看不见,但可以使用杰克逊吗?

时间:2019-07-18 02:28:57

标签: 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);
}

所有二传手都是公开的。如何使所有的二传手都不可见,而只有一个二传手可见?

1 个答案:

答案 0 :(得分:1)

建议的编辑:如ExceptionHandler所建议,您可以通过两种方式忽略属性:

  1. 班级
  2. 领域级别

由于您不想执行繁琐的字段级任务,因此可以通过忽略以下类似的字段来实现:

您可以在类级别忽略所有字段或使用@JsonIgnoreProperties注释指定的字段。只是不要提及您要反序列化的field/s。 像这样:

@JsonIgnoreProperties({ "field1", "field2", "field3" })
public class YourClass{
    private String field1;
    private String field2;
    private String field3;
   ...
}
相关问题