3 回答

TA貢獻1843條經驗 獲得超7個贊
我認為您獲得的結果 JSON 是預期的:new Person().address字段為 null(如果您不在Person的構造函數中對其進行初始化),因此將其序列化為null.
您正在搜索的輸出對應于類似的序列化
Person p = new Person();
Address a = new Address();
a.setContact(new Contact());
p.setAddress(a);
gson.toJson(p);
這是一個Person不同于new Person()...的實例

TA貢獻1852條經驗 獲得超7個贊
只需將您的 Person 類更改為
public class Person {
private String firstName;
private String lastname;
private Address address;
public Person() {
this(new Address());
}
public Person(Address address) {
this.address = address;
}
// getters and setters
}
否則沒有地址,因此JSON 中的null

TA貢獻1951條經驗 獲得超3個贊
您應該將地址作為對象添加到您的人員類中,而不是為空。
修改您的代碼 - 將構造函數添加到 Person 以地址對象作為參數
public class Person {
private String firstName;
private String lastname;
private Address address;
public Person(Address address) {
this.address=address;
}
// getters and setters
}
然后用這個替換打印行:
System.out.println(gson.toJson(new Person(new Address())));
添加回答
舉報