两个字段,一个名称为jsonproperty

时间:2017-03-27 13:51:20

标签: java jackson jdk1.8.0

我有一个接口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"。

1 个答案:

答案 0 :(得分:0)

您可以使用@JsonIgnore来放弃字段,BC可以覆盖@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";
    }

}