[英]two fields, one name jsonproperty
I have an interface A which has two methods with different jsonproperty (ref: com.fasterxml.jackson.annotation.JsonProperty) names 我有一个接口A,该接口具有两个方法,它们具有不同的jsonproperty(ref:com.fasterxml.jackson.annotation.JsonProperty)名称
public interface A {
@JsonProperty("field_1")
String getField1();
@JsonProperty("field_2")
String getField2();
}
I need to create two more interfaces class B and C which will inherit from A. 我需要再创建两个继承自A的接口类B和C。
While B wants to include field_1 and discard field_2, C wants field_2 and discard field_1. B想要包含field_1并丢弃field_2,而C想要field_2并丢弃field_1。 Also, both want to give the same name to their preferred fields, lets say, "field_3".
而且,两个人都希望为其首选字段赋予相同的名称,比如说“ field_3”。
You can use @JsonIgnore
to discard fields and B
and C
can override @JsonProperty
of A
as shown below. 您可以使用
@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";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.