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())));
添加回答
举报
