我正在将类序列化为XML。我发现@JsonInclude
非常有用。但是,我在按属性过滤类时遇到了问题。在xml中,如果是美国地址,我需要使用@JsonProperty
为字段提供一组注解。因此,我尝试使用Include
注解来仅显示基于国家的相关字段。
美国地址需要使用USAddress
作为 Package 元素名称。外国地址需要使用ForeignAddress
作为 Package 元素名称以及州/邮政编码的不同元素名称。
有没有办法在过滤器中访问类和它的属性?我试过对两种类型的地址都使用超类,但是使用Bazel时,我遇到了循环依赖问题。我是bazel的超级新手:P
public class Thing {
@JsonInclude(value = Include.CUSTOM, valueFilter = CountryFilter.class)
private final USAddress usAddress = new USAddress({line1: "123 MockingBird Ln", country: "US"});
@JsonInclude(value = Include.CUSTOM, valueFilter = CountryFilter.class)
private final ForeignAddress foreignAddress = new ForeignAddress({line1: "123 MockingBird Ln", country: "DE"});
}
public class CountryFilter {
@Override
public boolean equals(Object obj) {
return ...; // This is where I'm having issues. Would like it to do something like obj.getCountry().equals("US").
}
}
1条答案
按热度按时间66bbxpm51#
我最终使用了@JsonInclude(Includ.NON_NULL),然后在构造函数中使用了一个条件来选择性地设置地址。