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

我已经搜索了很长一段时间,但我仍然不清楚。我有一个 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;

}

现在我有几个关于这个的问题:

  1. StudentDetails.java即使 JSON 文件中的字段以小写开头且键以大写开头,gson 也会自动将字段映射到相应的键。我一直在寻找,@SerializedName但我的代码甚至没有使用它就可以工作。相反,如果我使用类似@SerializedName("Name)name 字段的东西,它会在反序列化后被分配为 null。我现在很困惑。

  2. 即使没有 getter 和 setter 方法,反序列化也能工作吗?在 jackson 中,您编写了 setter 和 getter 方法。

  3. 如果以上是真的,即使在私有字段的情况下它也有效吗?


RISEBY
浏览 240回答 1
1回答

繁星coding

我很确定这个问题,但我认为大小写仅在第一个字符之后才重要,因为您通常不会以大写字符开头字段的名称。 是的GSON 会自动映射字段。是GSON并没有需要的getter / setter是的GSON 可以处理私有字段,因为它使用反射
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java