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

Dam*_*mir 7 java android json gso

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

{
    "Person Id":"test",
    "Last Name": "test",
    "First Name":"test"
}
Run Code Online (Sandbox Code Playgroud)

我知道解析时名称之间没有空格,我就像创建类一样

class Person{
public String PersonId;
public String LastName;
public String FirstName;
}
Run Code Online (Sandbox Code Playgroud)

但是当标识符里面有空格时如何解析?Person类有什么变化?(我无法更改文件格式).

Eri*_*ric 34

在使用GSON时,您可以通过添加注释来完成此操作.例如:

class Person{
    @SerializedName("Person Id") public String PersonId;
    @SerializedName("Last Name") public String LastName;
    @SerializedName("First Name") public String FirstName;
}
Run Code Online (Sandbox Code Playgroud)

您可以在GSON文档中找到更多详细信息:https: //sites.google.com/site/gson/gson-user-guide#TOC-JSON-Field-Naming-Support


Bas*_*sil 0

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

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();
}
Run Code Online (Sandbox Code Playgroud)