gpt4 book ai didi

java - 如何使用 GSON 反序列化不同类型的数组

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

首先,我知道关于这个主题有很多问题,但我找不到能解决我的问题的问题。

我需要使用 Gson 反序列化以下形式的 json:

{
"name": "abc",
"entries":
[
[
"first_entry_name",
{"is_ok": true, "type": "first_entry_type"}
],
[
"second_entry_name",
{"is_ok": false, "type": "second_entry_type"}
]
]
}

我已经实现了这些类:

class Entries
{
String name;
ArrayList<Entry> entries;
}

class Entry
{
String name;
Details details;
}

class Details
{
Boolean is_ok;
String type;
}

我正在反序列化:

Entries ent = new Gson().fromJson(json, Entries.class);

我收到此错误:

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY

我明白为什么会收到此错误,但我想不出反序列化此 json 的方法。

这个json应该如何反序列化?

最佳答案

代码没问题,但您的 JSON 文件应该如下所示

 {
"name": "abc",
"entries":
[
{
"first_entry_name":{"is_ok": true, "type": "first_entry_type"}
},
{
"second_entry_name":{"is_ok": false, "type": "second_entry_type"}
}
]
}

在原始问题中发布的 json 中,列表(条目)中有列表,但理想情况下它应该是列表中的 json 元素。

这是带有输出的代码屏幕截图

enter image description here

希望这有帮助

关于java - 如何使用 GSON 反序列化不同类型的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59515604/

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