【发布时间】:2019-12-02 13:42:59
【问题描述】:
我正在使用带有预期依赖项(Jackson、Hibernate 等)的 Spring Boot。
我有一张名为 Buildings 的表格,其中 Unit、Number、Street 等都是列。但我更喜欢解析它并将其作为我创建的名为“StreetAddress”的类返回。
当我发送这个 JSON 时,我收到一个错误。
"address": {
"unit":"0101",
"number":"19",
"suffix":"STREET",
"suburb":"Example",
"state":"EXP",
"streetName":"Example",
"postCode":"400"
}
这是错误:
Cannot construct instance of `com.App.Entity.Helpers.StreetAddress` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
我在我的 Building 模型中将此作为 setAddress。有没有我可以用来告诉杰克逊如何正确解析它的注释?
private String subunit;
private Integer number;
private String streetname;
private String suffix;
private String suburb;
private String state;
private Integer postcode;
public void setAddress(StreetAddress address) {
this.subunit = address.getUnit();
this.number = address.getNumber();
this.streetname = address.getStreetName();
this.suffix = address.getSuffix().toString();
this.suburb = address.getSuburb();
this.state = address.getState().toString();
this.postcode = address.getPostCode();
}
澄清:
public class StreetAddress {
private String unit;
private Integer number;
private String streetname;
private StreetSuffix suffix;
private String suburb;
private AUState state;
private Integer postcode;
public StreetAddress(String unit, int number, String street, StreetSuffix suffix, String suburb, AUState state, int postcode) {
this.unit = unit;
this.number = number;
this.streetname = street;
this.suffix = suffix;
this.suburb = suburb;
this.state = state;
this.postcode = postcode;
}
public String getUnit() {
return unit;
}
public Integer getNumber() {
return number;
}
public String getStreetName() {
return streetname;
}
public String getSuffix() {
return suffix.toString();
}
public String getSuburb() {
return suburb;
}
public AUState getState() {
return state;
}
public Integer getPostCode() {
return postcode;
}
}
【问题讨论】:
-
StreetAddress是如何定义的? -
不是,否则我相信Spring会在相关表中寻找StreetAddress对象。
-
“定义”是指您编写的类声明。你说你已经创建了这个类,毕竟?很可能那里缺少一些东西。
-
public class StreetAddress { private String unit; private Integer number; private String streetname; private StreetSuffix suffix; private String suburb; private AUState state; private Integer postcode; public StreetAddress(String unit, int number, String street, StreetSuffix suffix, String suburb, AUState state, int postcode) { this.unit = unit; this.number = number; this.streetname = street; this.suffix = suffix; this.suburb = suburb; this.state = state; this.postcode = postcode; }
标签: java json spring-boot jackson