预计BEGIN_ARRAY但BEGIN_OBJECT在行1列35 [英] Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 35

查看:440
本文介绍了预计BEGIN_ARRAY但BEGIN_OBJECT在行1列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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆