Java 当标识符名称中有空格时,如何使用GSON进行解析

Java 当标识符名称中有空格时,如何使用GSON进行解析,java,android,json,gso,Java,Android,Json,Gso,当文件看起来像这样时,如何使用GSON进行解析 { "Person Id":"test", "Last Name": "test", "First Name":"test" } 我知道当名称之间没有空格时要进行解析,我创建了如下类 class Person{ public String PersonId; public String LastName; public String FirstName; } 但当标识符内部有空间时,如何解析呢?在个人课上改什么?(我无法

当文件看起来像这样时,如何使用GSON进行解析

{
    "Person Id":"test",
    "Last Name": "test",
    "First Name":"test"
}
我知道当名称之间没有空格时要进行解析,我创建了如下类

class Person{
public String PersonId;
public String LastName;
public String FirstName;
}

但当标识符内部有空间时,如何解析呢?在个人课上改什么?(我无法更改文件格式)。

我尝试解析此JSON,但没有使用GSON解析此JSON。我将与您分享我的代码,请只考虑作为解决问题的补充解决方案:

String parse = "{\"Person Id\":\"test\",\"Last Name\": \"lname\",\"First Name\":\"fname\"}";
try {
    JSONObject jsonObject   =   new JSONObject(parse);
    String id = jsonObject.getString("Person Id");
    System.out.println("id="+id);
    System.out.println("lname="+jsonObject.getString("Last Name"));
    System.out.println("fname="+jsonObject.getString("First Name"));
} catch (JSONException e) {
    e.printStackTrace();
}

在仍然使用GSON时,您可以通过添加注释来实现这一点。例如:

class Person{
    @SerializedName("Person Id") public String PersonId;
    @SerializedName("Last Name") public String LastName;
    @SerializedName("First Name") public String FirstName;
}
您可以在GSON文档中找到更多详细信息:

查看此线程的结尾:使用下划线替换空格?字段标识符使用与Java编码约定相反的名称。标识符以小写字母开头。