Java GSON toJson()方法为POJO返回null
这是我的POJO课程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
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不支持序列化匿名子类