【发布时间】:2019-12-26 11:58:42
【问题描述】:
我有这个代表学生实体的字符串:
{\"firstName\":\"Pirlog\",\"lastName\":\"Marcel\",\"year\":3,\"grupa\":\"B4\",\"accountId\":\"c9e4b165-8fdd-4ca2-974e-9b598ddb52bc\",\"id\":\"e577cf18-53bb-4e4e-bce2-b543f1d51f85\"}
Student 实体类是:
public class Student implements Serializable {
private String firstName;
private String lastName;
private int year;
private String grupa;
private UUID accountId;
private UUID id;
public Student(){
}
public Student(String firstName, String lastName, int year, String grupa, String accountId, String id){
this.id = UUID.fromString(id);
this.firstName = firstName;
this.lastName = lastName;
this.year = year;
this.grupa = grupa;
this.accountId = UUID.fromString(accountId);
}
}
为了解析字符串,我使用以下代码:
Gson g = new Gson();
String p = g.toJson(response1);
Student s = g.fromJson(p.substring(1, p.length() - 1), Student.class);
System.out.println(s.toString());
response1 是一个 httpresponse 的主体,它代表我的描述中的字符串。
例外:
Caused by: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 1 column 2 path $.
at com.google.gson@2.8.6/com.google.gson.Gson.fromJson(Gson.java:947)
at com.google.gson@2.8.6/com.google.gson.Gson.fromJson(Gson.java:897)
at com.google.gson@2.8.6/com.google.gson.Gson.fromJson(Gson.java:846)
at com.google.gson@2.8.6/com.google.gson.Gson.fromJson(Gson.java:817)
at Marcel/Marcel.controllers.uicontrollers.LoginScreenController.LoginFunction(LoginScreenController.java:42)
【问题讨论】: