我有一个接口A,它有两个不同的jsonproperty(ref:com.fasterxml.jackson.annotation.JsonProperty)名称的方法
public interface A {
@JsonProperty("field_1")
String getField1();
@JsonProperty("field_2")
String getField2();
}
我需要创建另外两个接口B和C接口,它们将继承自A.
当B想要包含field_1并丢弃field_2时,C想要field_2并丢弃field_1。此外,两者都希望为他们的首选字段指定相同的名称,例如," field_3"。
答案 0 :(得分:0)
您可以使用@JsonIgnore
来放弃字段,B
和C
可以覆盖@JsonProperty
A
,如下所示。
public interface A {
@JsonProperty("field_1")
String getField1();
@JsonProperty("field_2")
String getField2();
}
public class B implements A {
@Override
@JsonProperty("field_B")
public String getField1() {
return "field1";
}
@Override
@JsonIgnore
public String getField2() {
return "field2";
}
}
public class C implements A {
@Override
@JsonIgnore
public String getField1() {
return "field1";
}
@Override
@JsonProperty("field_C")
public String getField2() {
return "field2";
}
}