gpt4 book ai didi

java - 使用gson反序列化json

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

我在反序列化以下 json 时遇到问题:

{
"17":"asdf",
"18":"fdsa",
"19":"gfds",
"34":"vcxz",
"35":"oiue",
"36":"oiuy"
}

至:

public class CategoryList {

List<Category> list;
}

public class Category {

String id;
String name;
}

我收到以下IllegalStateException:

Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2

请告诉我哪里出错了。

最佳答案

以下 json

{
"17":"asdf",
"18":"fdsa",
...
}

是一个 JSON 对象而不是数组。您的类(Category 和 CategoryList)应使用以下 json:

{
list: [
{id: 17, name: "asdf"},
{id: 18, name: "fdsa"},
....
]
}

更改您的 json 或类。

编辑:问题是(如果我理解你的示例)你的 json 对象具有可变数量的字段。这意味着你必须使用像 hashmap 这样的东西而不是你的类。尝试将您的 json 反序列化为

Map<int, String>

您可以在此答案中找到一些帮助:https://stackoverflow.com/a/8103092/2880555 (您将被重定向到此链接 http://programmerbruce.blogspot.com/2011/06/gson-v-jackson.html 并要求在该页面中搜索“将任何 JSON 对象转换为 map 的 Gson 代码”)。

关于java - 使用gson反序列化json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19553014/

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