Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1277字,纯文字阅读大概需要2分钟。
内容图文
![Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException](/upload/InfoBanner/zyjiaocheng/778/382f8fd9c5494b78a0e1f258cfafc8d5.jpg)
我在解析json数据时遇到此错误
Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
我无法找到解决方案.我的json数据是:
{
"user": [
{
"email": "wijden@jerseyrest.com",
"firstName": "Wijden",
"id": "1",
"lastName": "User"
}, {
"email": "user@jerseyrest.com",
"firstName": "Sample",
"id": "2",
"lastName": "User"
}, {
"email": "ingenieur@jerseyrest.com",
"firstName": "Ingenieur",
"id": "3",
"lastName": "User"
}
]
}
这就是我做到的方式:
Type type = new TypeToken<List<WorkItem>>() { }.getType();
List<WorkItem> workitems = (List<WorkItem>) new Gson().fromJson(resultat, type);
如果你能帮助我解决问题,我将不胜感激.提前致谢
解决方法:
为了解析你的JSON,我创建了包装响应的类,即:
public class Response {
@SerializedName("user")
private List<User> userList;
//getters and setters
}
和,
public class User{
@SerializedName("id")
private int id;
@SerializedName("email")
private String email;
@SerializedName("firstName")
private String firstName;
@SerializedName("lastName")
private String lastName;
//getters and setters
}
然后,为了解析您的JSON响应,您只需要:
Gson gson = new Gson();
Response data = gson.fromJson(yourJsonString, Response.class);
然后,您可以非常轻松地访问您的数据,例如:
User user = data.getUserList.get(i);
注意:使用注释@SerializedName对于分离JSON响应中和应用程序中的字段名称很有意义,以便遵循Java命名约定…
内容总结
以上是互联网集市为您收集整理的Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException全部内容,希望文章能够帮你解决Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。