Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GSON toJson()方法为POJO返回null_Java_Json_Serialization_Gson - Fatal编程技术网

Java GSON toJson()方法为POJO返回null

Java GSON toJson()方法为POJO返回null,java,json,serialization,gson,Java,Json,Serialization,Gson,这是我的POJO课程 public class ResourceRecord { public ResourceRecord() {} public String name; public Integer ttl; public String type; public String rr; @SerializedName("class") public String dnsClass; } 这就是连载: ResourceRecor

这是我的POJO课程

public class ResourceRecord {

    public ResourceRecord() {}

    public String name;
    public Integer ttl;
    public String type;
    public String rr;

    @SerializedName("class")
    public String dnsClass;

}
这就是连载:

ResourceRecord rr = new ResourceRecord() {
    {
        name = "8.8.8.8";
        dnsClass = "IN";
        ttl = 600;
        rr = "0431shangmao.com.";
        type = "A";
    }
};

String rrStr = new Gson().toJson(rr);
显然,
rrStr
获取
null
。为什么?

我试着用
@Expose
注释字段,但结果还是一样

更新: 我改为:

ResourceRecord rr = new ResourceRecord("8.8.8.8", 900,"A","1.dnstest.netshade.net.", "IN");
它成功了。

试试这个

Gson Gson=new GsonBuilder().create();
字符串json=gson.toJson(obj)

obj是pojo类的对象

Gson Gson=new GsonBuilder().create();
字符串json=gson.toJson(obj)


obj是pojo类的对象

它不起作用的原因是,当您使用花括号实例化时,您正在创建
ResourceRecord
的匿名内部类:

ResourceRecord rr = new ResourceRecord() {
      {
          name = "8.8.8.8";
          dnsClass = "IN";
          ttl = 600;
          rr = "0431shangmao.com.";
          type = "A";
      }
  };

Gson不支持序列化匿名子类。

它不起作用的原因是,当您使用花括号实例化时,您正在创建
ResourceRecord
的匿名内部类:

ResourceRecord rr = new ResourceRecord() {
      {
          name = "8.8.8.8";
          dnsClass = "IN";
          ttl = 600;
          rr = "0431shangmao.com.";
          type = "A";
      }
  };
而且Gson不支持序列化匿名子类