为了账号安全,请及时绑定邮箱和手机立即绑定

gson 在反序列化 JSON 时如何将 JSON 键与 Java 类中的字段映射

gson 在反序列化 JSON 时如何将 JSON 键与 Java 类中的字段映射

RISEBY 2021-10-13 10:54:44
我已经搜索了很长一段时间,但我仍然不清楚。我有一个 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个赞

  1. 我很确定这个问题,但我认为大小写仅在第一个字符之后才重要,因为您通常不会以大写字符开头字段的名称。 是的GSON 会自动映射字段。

  2. GSON并没有需要的getter / setter

  3. 是的GSON 可以处理私有字段,因为它使用反射

查看完整回答
反对 回复 2021-10-13
  • 1 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信