当前位置: 首页 > 知识库问答 >
问题:

应为BEGIN\u对象,但为BEGIN\u数组,用于使用GSON进行JSON分析

秦永望
2023-03-14

预期BEGIN_OBJECT但BEGIN_ARRAY使用GSON解析JSON。我收到错误,这是由于Gson Json实现Json Format的类定义需要使用GSON解析而发生的

{
    "StatusCode": 4,
    "Data": {            
        "Data": [
                 [
                   {"Value": "19"},{"Value": "19"}],
                 [               
                   {"Value": "77"},{"Value": "4"}
                 ]
                ],

        "ColumnHeaders": [
            {
                "Width": "11.0%",
                "Title": "Date"
            },
            {
                "Width": "7.6%",
                "Title": "Total Clicks"
            }
        ],
        "ColumnHeaderGroups": [
            {
                "ColSpan": "1",
                "Title": ""
            },
            {
                "ColSpan": "7",
                "Title": "Chats"
            },
            {
                "ColSpan": "3",
                "Title": "Times (HH:MM:SS)"
            }
        ],

        "ReportHeaders": [
            {
                "Name": "Title",
                "Value": "Chat Summary By Date"
            },
            {
                "Name": "Run Date",
                "Value": "05/03/2016 10:52:39 AM"
            },
            {
                "Name": "Time Zone",
                "Value": "GMT+00:00"
            }
        ],
        "Summary": [              
            {
                "Value": "96"
            },
            {
                "Value": "23"
            }
        ]
    },
    "Status": "success"
}

用于使用gson进行分析的类:

static class Page {
        String Status;
        Data Data;
    }

    static class Data {
        String ReportID;
    }

    static class Page1 {
        String StatusCode;
        String Status;
        Data1 Data;
    }

    static class Data1 {

        List <Data2> Data;
        List<ColumnHeaders> ColumnHeaders;
        List<ReportHeaders> ReportHeaders;
        List<Summary> Summary;
    }

    static class Data2{
        List<object1> object1;
    }
    static class object1 {
        String  Value;
    }

    static class ColumnHeaders {
        String Title;
    }

    static class Summary {
        String  Value;
    }

    static class ReportHeaders {
        String  Value;
    }

使用gson解析json的代码:需要解析

"值":"19","值":"19","值":"77","值":"4"

内部数据数组[]。

  Gson gson = new Gson();
        Page1 page = gson.fromJson(json, Page1.class);
        String statusString = page.Status;
        System.out.println("Status : " + statusString);
        System.out.println("StatusCode : " + page.StatusCode);
        if ("success".equals(statusString)) {
            System.out.println("Inside if");
            for (ColumnHeaders item : page.Data.ColumnHeaders)
                System.out.print(item.Title + "     :");
            System.out.println();
            for (Summary item1 : page.Data.Summary)
                System.out.print(item1.Value + "    :");    
        }

共有1个答案

益富
2023-03-14

试试把pojo换成这个

class Data{
    @SerializedName("Data")
    @Expose
    private List<List<Data2>> Data = new ArrayList<List<Data2>>();
    @SerializedName("ColumnHeaders")
    @Expose
    private List<ColumnHeader> ColumnHeaders = new ArrayList<ColumnHeader>();
    @SerializedName("ReportHeaders")
    @Expose
    private List<ReportHeader> ReportHeaders = new ArrayList<ReportHeader>();
    @SerializedName("Summary")
    @Expose
    private List<Summary> Summary = new ArrayList<Summary>();
    //getter setter
}

class Data2{
   @SerializedName("Value")
   @Expose
   private String Value;
   //getter setter
}
 类似资料:
  • 我有下面的JSON和模型类,如何使用GSOn反序列化这个JSON,下面的代码片段会出现类似“预期的BEGIN\u对象,但是BEGIN\u数组”的异常。如何为下面的JSON数据生成模型CALS

  • 这是我的JSON数据: 这是我的反序列化代码: 我在PageSecurity上收到错误。这是我的PageResponce类。我想我可能处理信息是正确的。我只使用过JsonObject。我想知道如何获取“page”: 0,然后如何获取“线程” } 我的页面类 公共类页面{ }

  • 我有这样的json。在我的情况下,当我单击一个产品时,我会将该产品交给detailproduct。在那之后,我在我的详细信息屏幕中有了回收器。我想按产品数组获取回收商项目,该数组的id等于单击的产品id。 我想了解产品阵列。我的api方法正在返回调用

  • 我从以下改装服务中获得了一个json结果: 我在改装后变得像bellow一样: 但是告诉我: 下面是我的模型:

  • 我正在尝试使用《纽约时报》API,并使用Observable进行改装。但我在尝试使用数据时遇到了这个错误。 有人能帮我看看哪里错了吗? 以下是我的ApiServices界面: 这是我的ApiStreams课 这就是我在我的主要活动中要做的。现在我只想在文本视图中显示每个标题的列表。。。 [编辑]TopStories和NewsItem有我的两个模型 上部结构: 新闻项目: 以下是JSON的外观: J

  • 我找到了一些解决方案,但我真的不知道如何开始。 这是我的密码。 接口 主要活动