gpt4 book ai didi

java - 以数组形式返回时解析 JSON 响应

转载 作者:行者123 更新时间:2023-12-02 01:15:34 30 4
gpt4 key购买 nike

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $

这是我在尝试解析传入的 JSON 响应数据时不断收到的错误。我正在利用 OkHttp 库来创建和调用,并且我从中获取结果的 API 返回数组中的所有内容,如下所示:

    [
{
"id": 4256,
"image_url": "https://cdn.pandascore.co/images/league/image/4256/OMEN_Challenger_Series_2019.png",
"live_supported": false,
"modified_at": "2019-10-30T10:02:42Z",
"name": "OMEN Challenger",
"series": [
{
"begin_at": "2019-11-01T03:30:00Z",
"description": null,
"end_at": null,
"full_name": "2019",
"id": 1932,
"league_id": 4256,
"modified_at": "2019-10-30T09:11:40Z",
"name": null,
"prizepool": "50000 United States Dollar",
"season": null,
"slug": "cs-go-omen-challenger-2019",
"winner_id": null,
"winner_type": null,
"year": 2019
}
],
"slug": "cs-go-omen-challenger",
"url": "https://omengaming.co/omen_cs/",
"videogame": {
"current_version": null,
"id": 3,
"name": "CS:GO",
"slug": "cs-go"
}
},
{...},
{...},
{...},
{...},
]

我发现很多人推荐 Gson 将其解析为自定义类,但从理论上讲,以下代码应该可以工作,但事实并非如此。解析甚至没有开始,因为它期望 BEGIN_OBJECT 并且它是 BEGIN_ARRAY:

String jsonData = response.body().string();
Gson gson = new Gson();
EventInfo test = gson.fromJson(jsonData, EventInfo.class);

class EventInfo {

String imageURL;
String name;
JSONArray series;

}

最佳答案

您正在尝试将其解析为一个对象。但在你的回复中,你可以清楚地看到这是一个列表。父 POJO 应该是一个列表。在该列表中,您应该创建另一个 POJO。

关于java - 以数组形式返回时解析 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58669040/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com