我有这样的模特
public class testModel {
public boolean a = true;
public Test2 test2 = new Test2();
public class Test2 {
public boolean b = true;
}
}
和像这样的json
{
"test2":{}
}
当我用Gson解析这个json时
testModel testModel = new Gson().fromJson("{ \"test2\":{}}", testModel.class);
Log.e("test", testModel.a + " " + testModel.test2.b);
,日志是:
E/test: true false
testModel.a为'true'但testmodel.test2.b为'false' 为什么Gson改变了b的默认值而b在json中不存在? b和a之间有什么区别?
是Gson的错误吗?
答案 0 :(得分:0)
我在github https://github.com/google/gson/issues/1168询问了我的问题,并且会员回答正确。
答案:
TestModel有一个no-arg构造函数,而Test2隐含有一个 获取TestModel的一个实例。将Test2标记为静态类,它会 工作