有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我寻找这个已经有一段时间了,但我仍然不清楚。我有一个JSON文件,如下所示:

{
  "Name" : "Foo Bar",
  "Grade" : "Some Grade",
  "Org" : "Some Org"
}

为了反序列化这个JSON(使用gson),我创建了一个名为StudentDetails.java的Java类,如下所示:

public class StudentDetails
{
    public String name;
    public String grade;
    public String org;
}

现在我有几个问题:

  1. gson会自动将StudentDetails.java中的字段映射为相应的键,即使在JSON文件中字段以小写开头,键以大写开头。我一直在寻找@SerializedName,但我的代码甚至不用它就可以工作。相反,如果我在name字段中使用类似@SerializedName("Name)的东西,那么在反序列化后它会被分配到null。我现在很困惑
  2. 即使没有getter和setter方法,反序列化也能工作吗?在jackson中,你编写了setter和getter方法
  3. 如果上述情况属实,那么即使是在私人领域,它也有效吗

共 (0) 个答案