json在JAVA中使用GSON序列化内部类
我想用GSON序列化一个包含内部类的类。我已经检查过内部类是静态的这一点很重要。我已经将其设置为静态,但我的代码没有将其序列化
我要序列化的类:
public class A{
static class B{
public String b;
public B() {}
}
private int data1 = 100;
private String data2 = "hello";
private List<String> list = new ArrayList<String>() {
{
add("String 1");
add("String 2");
add("String 3");
}
};
public A(){
}
}
构成seralization的代码:
public class json
{
public static void main(String args[])
{
try
{
Gson gson = new Gson();
A a = new A();
String j = gson.toJson(t);
System.out.println(j);
}
}
结果是:
{"data1":100,"data2":"hello","list":["String 1","String 2","String 3"]}
问题是结果不包含内部类序列化
我怎样才能解决这个问题
非常感谢你的帮助
# 1 楼答案
由于您的B类没有任何值,因此它不会序列化。 为了连载这一点
您可以使用以下配置gson builder:
以下是链接: https://github.com/google/gson/blob/master/UserGuide.md#null-object-support
# 2 楼答案
在
A
内没有类型为B
的字段,因此没有可序列化的内容你需要像
# 3 楼答案
这是合适的link。它定义了实现这一点的方法,但建议将内部类设置为静态