Java 方法上的@JsonProperty出现问题

Java 方法上的@JsonProperty出现问题,java,json,parsing,annotations,jackson,Java,Json,Parsing,Annotations,Jackson,目前,我的POJO类用于反序列化json源代码 public class OpenBuilding extends Building { @JsonProperty("BuildingPostCode") @Override public String getPostcode() { return super.getPostcode(); } } 其中父类是这样的 public abstract class Buidling { pr

目前,我的POJO类用于反序列化json源代码

public class OpenBuilding extends Building {

    @JsonProperty("BuildingPostCode")
    @Override
    public String getPostcode() {
        return super.getPostcode();
    }
}
其中父类是这样的

public abstract class Buidling {

    protected String postcode;

    public String getPostcode() {
        return this.postcode;
    }
}
我的问题是字符串邮政编码根本没有被映射。当在字段上使用注释时,它会起作用。但是,由于它是一个继承的字段,并且我有其他Building的子项,它们对相同的数据使用不同的属性名称,因此我无法以这种方式实现它


例如:

public class DirectedBuilding extends Building {

    @JsonProperty("Pseudo_PostCode")
    @Override
    public String getPostcode() {
        return super.getPostcode();
    }
}

也许可以尝试使用
@JsonCreator
定义构造函数

class Parent {

    private final String foo;

    public Parent(final String foo) {
        this.foo = foo;
    }

    public String getFoo() {
        return foo;
    }
}

class Child extends Parent {

    @JsonCreator
    public Child(@JsonProperty("foo") final String foo) {
        super(foo);
    }

    @JsonProperty("foo")
    public String getFoo() {
        return super.getFoo();
    }
}


public static void main(String[] args) throws Exception {
    final ObjectMapper objectMapper = new ObjectMapper();
    final Child toSerialize = new Child("fooValue");

    // Serialize the object to JSON
    final String json = objectMapper.writer()
            .withDefaultPrettyPrinter()
            .writeValueAsString(toSerialize);

    // Prints { "foo" : "fooValue" }
    System.out.println(json);

    // Deserialize the JSON
    final Child deserializedChild = objectMapper.readValue(json, Child.class);

    // Prints fooValue
    System.out.println(deserializedChild.getFoo());
}

在这种情况下,它很有用,但当我需要对10-20个变量执行此操作时,它的可维护性就会降低,这对于其他一些类来说是正确的