Java 方法上的@JsonProperty出现问题
目前,我的POJO类用于反序列化json源代码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
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个变量执行此操作时,它的可维护性就会降低,这对于其他一些类来说是正确的