预计BEGIN_ARRAY但BEGIN_OBJECT在行1列35 [英] Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 35
问题描述
我刚开始GSON,我试图分析其启动为对象的JSON字符串,总是得到同样的错误 JSON
{
code:200,
数据: {
消息:
{
emailSender:dsfd@mail.ru,
国code:空,
emailSenderReply:空,
rejectedReason:空,
messageReplySenderMessageDeleted:空,
lastNameReceiver:空,
wpMessagesRatingReplyId:空,
wpMessagesRatingRating:空,
countryMemberId:143,
phoneSenderReply:空,
messageReplyReceiverMessageDeleted:空,
readStatus:未读,
phoneReceiverReply:空,
membersSenderUid:m8692031,
wpMessagesRequestTitle:Fazzzzzz,
头衔:Fazzzzzz
countryTitle:空,
emailReceiver:空,
firstNameReceiverReply:空,
ID:1288,
messageReplyId:空,
membersReceiverUid:m1000002,
时间:2014年12月28号十四时32分09秒,
wpMessagesRequestCategoryId:4,
lastNameReceiverReply:空,
lastNameSender:DSAD,
phoneReceiver:空,
状态:没有答案,
messageReplyReceiver:空,
messageReplyStatus:空,
memberReceiverRole:管理,
isConsultant:1,
roleReplyReceiver:空,
wpMesssagesRequestCategoriesSystemName:订单,
lastNameSenderReply:空,
memberSenderRole:会员,
wpMesssagesRequestCategoriesName:订单,
requestMessage:1101,
wpMessagesRequestPriority:中间,
messageReplyTime:空,
消息:OLOLO
wpMessagesRequestCountryId:空,
发件人:4481,
firstNameReceiver:空,
messageReplyMessage:空,
firstNameSender:asdas,
firstNameSenderReply:空,
emailReceiverReply:空,
roleReplySender:空,
messageReplySender:空,
wpMessagesRequestProductId:空,
接收器:4364,
isMessageForwarded:0,
wpMessagesRequestStatus:不取,
phoneSender:2(342)-4-23-42
wpMessagesRequestMessage:OLOLO
}
]
}
}
和我一直运行到错误:
预计BEGIN_ARRAY但BEGIN_OBJECT第3行第12列
在我的日志指向该行的错误:
GSON GSON =新GsonBuilder()创建()。
主力主攻= gson.fromJson(一,Main.class);
下面是我的POJO
静态类主要{
INT code;
布尔的错误;
名单<数据>数据;
}
静态类数据{
Enteties消息;
}
静态类Enteties {
字符串msg_title;
字符串msg_time;
INT MSG_ID;
字符串msg_status;
@覆盖
公共字符串的toString(){
返回msg_title ++ msg_time ++ MSG_ID ++ msg_status;
}
}
您主要类有数据为列表。您的JSON有它作为一个对象。类型需要匹配。如果你希望只1中的数据为主,不要使用名单。如果您希望1个或多个DATAS,使code产生的数据发下来的数组(即使该数组只中有1对象)。
I freshly started with gson and i am trying to parse a JSON string which starts as an object and always get the same error JSON
{
"code": 200,
"data": {
"messages": [
{
"emailSender": "dsfd@mail.ru",
"countryCode": null,
"emailSenderReply": null,
"rejectedReason": null,
"messageReplySenderMessageDeleted": null,
"lastNameReceiver": null,
"wpMessagesRatingReplyId": null,
"wpMessagesRatingRating": null,
"countryMemberId": 143,
"phoneSenderReply": null,
"messageReplyReceiverMessageDeleted": null,
"readStatus": "unread",
"phoneReceiverReply": null,
"membersSenderUid": "m8692031",
"wpMessagesRequestTitle": "Fazzzzzz",
"title": "Fazzzzzz",
"countryTitle": null,
"emailReceiver": null,
"firstNameReceiverReply": null,
"id": 1288,
"messageReplyId": null,
"membersReceiverUid": "m1000002",
"time": "2014-12-28 14:32:09",
"wpMessagesRequestCategoryId": 4,
"lastNameReceiverReply": null,
"lastNameSender": "dsad",
"phoneReceiver": null,
"status": "unanswered",
"messageReplyReceiver": null,
"messageReplyStatus": null,
"memberReceiverRole": "admin",
"isConsultant": 1,
"roleReplyReceiver": null,
"wpMesssagesRequestCategoriesSystemName": "orders",
"lastNameSenderReply": null,
"memberSenderRole": "member",
"wpMesssagesRequestCategoriesName": "Orders",
"requestMessage": 1101,
"wpMessagesRequestPriority": "middle",
"messageReplyTime": null,
"message": "OLOLO",
"wpMessagesRequestCountryId": null,
"sender": 4481,
"firstNameReceiver": null,
"messageReplyMessage": null,
"firstNameSender": "asdas",
"firstNameSenderReply": null,
"emailReceiverReply": null,
"roleReplySender": null,
"messageReplySender": null,
"wpMessagesRequestProductId": null,
"receiver": 4364,
"isMessageForwarded": 0,
"wpMessagesRequestStatus": "not-taken",
"phoneSender": "2(342)-4-23-42",
"wpMessagesRequestMessage": "OLOLO"
}
]
}
}
and I keep running into the error:
Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 3 column 12
The error in my log points to this line:
Gson gson = new GsonBuilder().create();
Main main=gson.fromJson(a, Main.class);
Here is my pojo
static class Main{
int code;
boolean error;
List<Data> data;
}
static class Data{
Enteties messages;
}
static class Enteties{
String msg_title;
String msg_time;
int msg_id;
String msg_status;
@Override
public String toString(){
return msg_title+" "+msg_time+" "+msg_id+" "+msg_status;
}
}
Your Main class has Data as a list. Your JSON has it as an object. The types need to match. If you expect only 1 data in main, do not use a list. If you expect 1 or more datas, make the code that generates the data send down an array (even if that array only has 1 object in it).
这篇关于预计BEGIN_ARRAY但BEGIN_OBJECT在行1列35的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!