我有一个Employee类,我想像这样序列化:class Employee { String name; @JsonUnwrapped EmployeeId id; @JsonUnwrapped(prefix = "previousEmployee") EmployeeId previousEmployeeId;}final class EmployeeId{ @JsonProperty("id") private final long value; @JsonCreator public EmployeeId(@JsonProperty("id") long value) { this.value = value; }}序列化Employee给出以下 json:{ "name":"foo", "id" : 123, "previousEmployeeid" : 456}但是,这previousEmployeeId是可选的。因此,如果我尝试反序列化这个 json,它会将 inid放入previousEmployeeId字段中。我究竟做错了什么?{ "name":"foo", "id" : 123}我希望该字段previousEmployeeid是,null但它被分配了一个值123。
1 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
你去吧!
final class EmployeeId {
@JsonProperty("id")
private final long value;
@JsonCreator
public EmployeeId(@JsonProperty("whatever") long value) {
this.value = value;
}
}
查看whateveras@JsonProperty值。您可以放入任何不为空但不是id.
顺便说一句,这一定是某种错误。
记住它不可能null,因为内部value是原始类型。并且包装对象无论如何都不会为空。
JsonCreator与您一起使用JsonUnwrapped不能有null EmployeeId
我总是测试我的代码。有用。
添加回答
举报
0/150
提交
取消