gpt4 book ai didi

java - 如何在此示例中使用 GSON 解码 JSON?

转载 作者:行者123 更新时间:2023-11-30 09:52:42 24 4
gpt4 key购买 nike

我是 GSON 的新手。这是我的例子

[["a","b","c"],[1,2,3],[4,5,6]]

我想拆分成数组。我试试这段代码

String test = "[ [\"a\",\"b\",\"c\"],[1,2,3]]";
String[] column = gson.fromJson(test, String[].class);

它不起作用...并出现错误。

The JsonDeserializer StringTypeAdapter failed to deserialized json object ["a","b","c"] given the type class java.lang.String
com.google.gson.JsonParseException: The JsonDeserializer StringTypeAdapter failed to deserialized json object ["a","b","c"] given the type class java.lang.String

我知道这个例子是字符串数组和整数数组的混合。

我该如何处理??

谢谢你..

最佳答案

问题是您试图将 JSON 转换为字符串数组,而实际上它根本不是字符串数组。

由于数组元素没有属性名称,因此您也无法创建普通的 Java 类来存储它。因此,它必须被反序列化为某种 类型的二维数组。鉴于一些元素是字符串,一些是整数,最具体的通用父类(super class)是 Object

因此,唯一可能作为它工作的数组类是 Object[][].class。我不知道 GSON 是否支持异构 2D 数组,但试试这个并找出:

String[] column = gson.fromJson(test, Object[][].class);

如果这无法解析对象,请尝试传入 List.class。这将可能失败,因为它没有向 GSON 提供解析嵌套实体的类型信息,但值得一试。

关于java - 如何在此示例中使用 GSON 解码 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4153397/

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