当前位置: 首页 > 面试题库 >

预期为BEGIN_ARRAY,但在第1行第35列为BEGIN_OBJECT

卫才
2023-03-14
问题内容

我刚从gson开始,我想解析一个以对象开头的JSON字符串,并且总是得到相同的错误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"
      }
    ]
  }
}

我一直遇到错误:

Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 3 column 12

我的日志中的错误指向这一行:

Gson gson = new GsonBuilder().create();
Main main=gson.fromJson(a, Main.class);

这是我的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;
        }
    }

问题答案:

您的主类将数据作为列表。您的JSON将其作为对象。类型需要匹配。如果您希望main中只有1个数据,请不要使用列表。如果期望1个或多个数据,则使生成数据的代码向下发送一个数组(即使该数组中只有1个对象)。



 类似资料:
  • 问题内容: 我遇到错误了。 由于以下原因,无法解析JSON:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_ARRAY,但在第1行第2列为BEGIN_OBJECT 服务器网址 执行请求 上课后 我该如何解决? 问题答案: 您在注释中声明返回的JSON是这样的: 您告诉Gson您有一个对象数组:

  • 问题内容: 我有以下课程: 而此代码应解析json: 哪里 JSON是: 我得到的错误是: 但是我不知道为什么,根据jsonlint,json是有效的。 我为什么会收到此错误的任何主意吗? 问题答案: 您的JSON有效-但您的映射类无效(部分不匹配)。特别是,无法将类的属性映射为给定JSON中的a。很难推荐一种备用结构来存储数据而又不会看到较大的示例,但是通常在JSON结构与Java类之间进行映射

  • 问题内容: 我有以下课程: 而此代码应解析json: 哪里 JSON是: 我得到的错误是: 但是我不知道为什么,根据jsonlint,json是有效的。 我为什么会收到此错误的任何主意吗? 问题答案: 您的JSON有效-但您的映射类无效(部分不匹配)。特别是,无法将类的属性映射为给定JSON中的a。很难推荐一个备用的结构来存储数据而不会看到更大的样本,但是通常,在JSON结构和Java类之间进行映

  • 问题内容: 我从Web服务获取JSon数据,示例数据如下: 当我尝试将其转换时,它将引发错误,我这样做是: 我的班级是: LogCat说: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但在第1行第2列为BEGIN_ARRAY 问题答案: 错误说明发生了什么问题…您返回的是数组

  • 问题内容: 我有这种方法: 我想解析一个JSON: 但是我收到一条错误消息: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但位于第1行第1列 问题答案: 即使没有看到您的JSON字符串,您也可以从错误消息中得知,它不是要解析为类实例的正确结构。 Gson希望您的JSON字符串

  • 问题内容: 我知道这不是第一次有人问这个问题,但是有了Retrofit2,我找不到适合我问题的正确解决方案。我遵循了在线教程,效果很好。当我将相同的代码应用于自己的端点时,会出现以下异常:我不知道该如何解决。 接口: 客户代码: 此代码与此有效负载一起使用: 但与此不: 我的音乐课: 问题答案: 当您说“此代码正在使用此有效负载:…而不是与此有效:: …”时,这是预期的,这就是假定的工作方式。实际