开发者

How to parse with GSON when identifier has space in name

开发者 https://www.devze.com 2023-03-26 11:55 出处:网络
How to parse with GSON when file looks like this { \"Person Id\":\"test\", \"Last Name\": \"test\", \"First Name\":\"test\"

How to parse with GSON when file looks like this

{
    "Person Id":"test",
    "Last Name": "test",
    "First Name":"test"
}

I know to parse when names doesn't have space between, I create class like

开发者_如何学C
class Person{
public String PersonId;
public String LastName;
public String FirstName;
}

but how to parse when identifier has space inside ? What to change in Person class ? ( I cannot change format of file ).


While still using GSON you can do this by adding an annotation. For instance:

class Person{
    @SerializedName("Person Id") public String PersonId;
    @SerializedName("Last Name") public String LastName;
    @SerializedName("First Name") public String FirstName;
}

You can find more details in the GSON documentation: https://sites.google.com/site/gson/gson-user-guide#TOC-JSON-Field-Naming-Support


I have tried to parse this JSON but I didn't use GSON to parse this. I'll share my code with you, kindly consider only as a supplementary solution to solve the issue:

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();
}
0

精彩评论

暂无评论...
验证码 换一张
取 消