【发布时间】:2014-06-25 02:49:19
【问题描述】:
所以我使用 Google 的 GSON 库来理解 JSON 字符串。我让它在我保存的对象是User 的地方工作,声明如下:
User user = gson.fromJson(string, User.class),
但我似乎无法理解如何使用“嵌套对象”保存字符串。这是给我错误的声明:
Gson gson = new Gson();
Request request = gson.fromJson(requestInput, Request.class);
requestInput 在哪里
String requestInput = "{key: \"123\", requestType: \"POST\", requestModelType: \"USER\","
+ " obj: {username: \"alex\", email: \"email@gmail.com\", password:\"pass\"}}";
我的User 类如下所示:
public class User implements Serializable{
private static final long serialVersionUID = -24243416292823789L;
private String username;
private String email;
private String password;
private List<Circle> circles;
private List<Notification> notifications;
...
而我的Request 看起来像这样:
public class Request {
private String key;
private String requestType;
private String requestModelType;
private User user;
...
最后,我收到以下错误:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
...
非常感谢您对此提供任何帮助或提出更好设计的建议!
【问题讨论】: