gpt4 book ai didi

java - 调整 JSON 或 GS​​ON?

转载 作者:行者123 更新时间:2023-11-30 11:35:25 25 4
gpt4 key购买 nike

我有一个 Java 应用程序从第 3 方 RESTful 网络服务返回以下 JSON:

{
"widgets":[
[
{
"id":25128,
"status":"always",
"uuid":"96f62edd-fa8a-4267-8ffb-14af0d37de26"
}
],
[
{
"id":25200,
"status":"always",
"uuid":"78553c9e-398f-495a-8fb8-ada0fb297844"
}
],
[
{
"id":25128,
"status":"never",
"uuid":"b1e3deb2-a842-4cba-8272-458d15efb394"
}
]
]
}

并尝试将其转换为 List<Widget>使用 GSON:

public class Widget {
@SerializedName("id")
private Long id;

@SerializedName("status")
private String status;

@SerializedName("uuid")
private String uuid;

// Getters & setters, etc.
}

这是我的映射器代码:

String jsonResponse = getJsonFromWebService();
Gson gson = new Gson();
List<Widget> widgets = gson.fromJson(jsonResponse, new TypeToken<List<Widget>>(){}.getType());

当我运行它时,出现以下错误:

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

显然,我要么需要在将 JSON 字符串发送到我的 GSON 映射器代码之前对其进行操作,要么我需要配置 GSON 来处理“意外的”JSON,但我不确定哪个更容易/更合适。如果我需要“按摩”JSON 字符串,不确定我需要做什么才能让 GSON 很好地使用它。如果我需要配置 GSON,也不知道该怎么做。有任何想法吗?提前致谢。

最佳答案

错误在于您忽略了具有单个 JSON 属性“widgets”的根 JSON 对象。尝试将您的数据反序列化到此对象中:

public class WidgetList {
@SerializedName("widgets")
private List<List<Widget>> widgets;
}

关于java - 调整 JSON 或 GS​​ON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15137762/

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