我已经搜索了很长一段时间,但我仍然不清楚。我有一个 JSON 文件,如下所示:{ "Name" : "Foo Bar", "Grade" : "Some Grade", "Org" : "Some Org"}为了反序列化这个 JSON(使用 gson),我创建了一个名为的 Java 类StudentDetails.java,如下所示:public class StudentDetails{ public String name; public String grade; public String org;}现在我有几个关于这个的问题:StudentDetails.java即使 JSON 文件中的字段以小写开头且键以大写开头,gson 也会自动将字段映射到相应的键。我一直在寻找,@SerializedName但我的代码甚至没有使用它就可以工作。相反,如果我使用类似@SerializedName("Name)name 字段的东西,它会在反序列化后被分配为 null。我现在很困惑。即使没有 getter 和 setter 方法,反序列化也能工作吗?在 jackson 中,您编写了 setter 和 getter 方法。如果以上是真的,即使在私有字段的情况下它也有效吗?
1 回答
繁星coding
TA贡献1797条经验 获得超4个赞
我很确定这个问题,但我认为大小写仅在第一个字符之后才重要,因为您通常不会以大写字符开头字段的名称。 是的GSON 会自动映射字段。
是GSON并没有需要的getter / setter
是的GSON 可以处理私有字段,因为它使用反射
添加回答
举报
0/150
提交
取消