我是Gson图书馆的新手,不知道为什么这个对象对json转换器的工作很奇怪。我的代码类似于下面的代码
public class A implements Serializable{
@Expose
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class B extends A implements Serializable{
@Expose
private int x;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
}
public class MainclassTester{
public static void main(String[] args){
public B b = new B();
b.setName("Point");
b.setX(2);
final Gson gson = new GsonBuilder().create();
System.out.println(gson.toJson(b));
}
}
我希望输出是这样的
{
"name":'Point',
"x":2
}
但我得到了输出
{
"name":'Point'
}
我的子类变量没有正确序列化。
答案 0 :(得分:0)
您需要使用公开来注释您的类,只是为了暴露字段。
那么在private int x;
之前你需要擦除曝光吗?
要压制字段,必须使用excludeFieldsWithoutExposeAnnotation
修饰符实例化Gson。
GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();