Java GSON分析错误:应为BEGIN_对象,但在响应值为null时为字符串
我搜索了许多类似的问题“预期的BEGIN_对象,但它是字符串”,但对我来说没有任何效果。Java GSON分析错误:应为BEGIN_对象,但在响应值为null时为字符串,java,android,json,Java,Android,Json,我搜索了许多类似的问题“预期的BEGIN_对象,但它是字符串”,但对我来说没有任何效果。这是我的json字符串: { "result": "true", "data": [{ "from": { "user_id": "user1", "name": "user1", "avatar": "http://zzzzzz.jpg" }, "request_id": "user1:user2" }, { "from": "
这是我的json字符串:
{
"result": "true",
"data": [{
"from": {
"user_id": "user1",
"name": "user1",
"avatar": "http://zzzzzz.jpg"
},
"request_id": "user1:user2"
},
{
"from": "null",
"request_id": "user1:user3"
}]
}
这是我的映射实体:
public class GetFriendResponse {
public boolean result;
public List<FriendRequest> data;
}
public class FriendRequest {
public String request_id;
public UserInfo from;
}
public class UserInfo {
public String user_id;
public String name;
public String avatar;
}
我检查了一下,发现问题是当结果包含“from”:“null”
,它会给出一个错误有什么想法吗?您应该使Web服务返回null或{},而不是“null” Gson已经过时了。。。我发现Json库非常优秀……但实际上,您应该在类中使用getter和setter,而不是公共变量!为什么你说Gson已经过时了?我读到它比更现代的库慢得难以置信。如果你有另一种方法为我工作,我真的很高兴,因为我无法更改web服务的json结果。我不在乎库是什么。问题是我没有更改web服务的权限。“null”不是JSON标准。[因此,您必须创建一个非标准json解析器。好的,我知道了。让我试试这种方法。谢谢!
Gson gson = new Gson();
GetFriendResponse response = gson.fromJson(jsonString,GetFriendResponse.class);