我有一個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
提交
取消