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

标签 java json gson

我正在编写一个使用 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));

它工作得很好,并按预期输出。 为什么我如何创建对象很重要?两种方法有区别吗?

最佳答案

第一种情况返回 null 的原因是“客户”对象的类是匿名类,clazz.isAnonymousClass() 返回 true

请参阅下面的 GSon 实现

enter image description here

关于java - 如何在java中将无名对象转换为JSON(使用GSON)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57870441/

相关文章:

java - 如果 Activity 配置文件与正则表达式关键字匹配,如何有条件地在 Spring 中启用类?

java - 用字符替换未知的图案大小

JSON 关联数组到 Dart/Flutter 对象

java - 使用 Gson for ReSTLet 将 Post 数据(Representation)转换为 Object

java - 有什么方法可以将 Java 对象转换为 JSON 文件

java - 如何在 Windows 上制作相同高度的 SWT 按钮、文本和标签?

java - 如果A是由B启动的,如何使线程A在JavaFX线程B中改变场景?

javascript - 为什么我无法验证这个包含包含命名对象的数组的 JSON 文档?

jquery - 如何在asp.net MVC 4中通过ajax请求下载文件

android - 需要帮助使用 gson 解析 json 文件