我正在编写一个使用 gson 返回 JSON 对象的程序,我发现了一些奇怪的东西。基本上,当我想将以下对象转换为 JSON 时,它给了我 null。Customer customer = new Customer() { { setId(1); setName("Foo bar"); setAddress("Some Address"); }};System.out.println(gson.toJson(customer));客户看起来像这样public class Customer{ int id; String name; String address; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }但是当我正确创建对象时Customer customer = new Customer();customer.setId(1);customer.setName("Foo bar");customer.setAddress("Some Address");System.out.println(gson.toJson(customer));它工作得很好,并按预期输出。为什么我如何创建对象很重要?两种方法有区别吗?
1 回答
茅侃侃
TA贡献1842条经验 获得超21个赞
第一种情况返回 null 的原因是“客户”对象的类是匿名类,clazz.isAnonymousClass() 返回 true
参见下文了解 Gson 的实现
添加回答
举报
0/150
提交
取消