gpt4 book ai didi

android - 如果该字段在 json 中不存在,Gson 将默认 bool 值更改为 false

转载 作者:行者123 更新时间:2023-11-30 00:18:56 37 4
gpt4 key购买 nike

我有这样的模型

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 是“真”但 testmodel.test2.b 是“假”为什么 Gson 更改了 b 的默认值,而 b 在 json 中不存在?b 和 a 有什么区别?

这是 Gson 的错误吗?

最佳答案

我在 github https://github.com/google/gson/issues/1168 上问了我的问题一名成员回答正确。

回答:

TestModel has a no-arg constructor while Test2 implicitly has one that takes an instance of TestModel. Mark Test2 as a static class and it will work.

关于android - 如果该字段在 json 中不存在,Gson 将默认 bool 值更改为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46683609/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com