为了账号安全,请及时绑定邮箱和手机立即绑定

如何在java中将无名对象转换为JSON(使用GSON)?

如何在java中将无名对象转换为JSON(使用GSON)?

猛跑小猪 2023-07-19 16:40:39
我正在编写一个使用 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 的实现

//img1.sycdn.imooc.com//64b7a1ae0001b7c207430413.jpg

查看完整回答
反对 回复 2023-07-19
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信