两个字段,一个名字 jsonproperty
two fields, one name jsonproperty
我有一个接口 A,它有两个具有不同 jsonproperty(参考:com.fasterxml.jackson.annotation.JsonProperty)名称的方法
public interface A {
@JsonProperty("field_1")
String getField1();
@JsonProperty("field_2")
String getField2();
}
我需要再创建两个接口 class B 和 C,它们将从 A 继承。
虽然 B 想要包含 field_1 并丢弃 field_2,但 C 想要 field_2 并丢弃 field_1。此外,两者都希望为其首选字段指定相同的名称,比方说,"field_3".
您可以使用 @JsonIgnore
丢弃字段,B
和 C
可以覆盖 A
的 @JsonProperty
,如下所示。
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";
}
}
我有一个接口 A,它有两个具有不同 jsonproperty(参考:com.fasterxml.jackson.annotation.JsonProperty)名称的方法
public interface A {
@JsonProperty("field_1")
String getField1();
@JsonProperty("field_2")
String getField2();
}
我需要再创建两个接口 class B 和 C,它们将从 A 继承。
虽然 B 想要包含 field_1 并丢弃 field_2,但 C 想要 field_2 并丢弃 field_1。此外,两者都希望为其首选字段指定相同的名称,比方说,"field_3".
您可以使用 @JsonIgnore
丢弃字段,B
和 C
可以覆盖 A
的 @JsonProperty
,如下所示。
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";
}
}