Java 解析JSON文档

Java 解析JSON文档,java,json,Java,Json,实际上,我正在努力解析以下JSON文档: 我有一个类,它将内容保存在字符串(rawData)中。之后,我想用Gson解析它 DownloadedCategories dcats = new Gson().fromJson(rawData, DownloadedCategories.class); 我的目标是有一个21个主要类别的额外数据类型列表,并在另一个列表中保存子类别的额外数据类型 我的方法是创建新的数据类型mainCategory,其中包括子类别列表 问题是我不能这样做Downloade

实际上,我正在努力解析以下JSON文档:

我有一个类,它将内容保存在字符串(rawData)中。之后,我想用Gson解析它

DownloadedCategories dcats = new Gson().fromJson(rawData, DownloadedCategories.class);
我的目标是有一个21个主要类别的额外数据类型列表,并在另一个列表中保存子类别的额外数据类型

我的方法是创建新的数据类型mainCategory,其中包括子类别列表

问题是我不能这样做DownloadedCategories类:

public class DownloadedCategories
{
    private List<mainCategories> categories;

    public List<mainCategories> getCategories;
    {
        return categories;
    }
}
公共类下载类别
{
私人名单类别;
公共目录;
{
退货类别;
}
}

有人知道如何解决我的问题吗?

看起来您链接中的Json格式不适合您的对象

由于要解析对象中的Json数组,您需要知道将把类别放在哪个属性中。在您下载的类别中,属性为类别。因此,您需要将Json封装在属性categories

    String wellFolrmedJson = "{\"categories\": " + rawData + "}";
    DownloadedCategories dcats = new Gson().fromJson(wellFolrmedJson , DownloadedCategories.class);
Gson将绑定对象列表中的json数组

解析数据的最佳方法是使用数组作为起点,如下所示


如果没有错误消息、问题描述和likes@TacoVox,请解释清楚。很难理解你想做什么,你遇到了什么麻烦。问题是我不知道如何将主要类别放入一个对象中。你从错误的范例开始。在进入“POJO”之前,您应该从一个简单的解析器开始,该解析器可以解析为映射和列表。当你明白了这一点,那么你就可以开始使用那些更奇特的东西了。从你所处的位置开始,你总是会感到困惑。JSON并没有格式错误。解析它时没有错误。Gson的默认解析器格式不正确
java.lang.IllegalStateException:应为BEGIN_对象,但在第1行第2列路径处为BEGIN_数组$
它是JSON对象的JSON数组。
mainCategories[] dcats = new Gson().fromJson(rawData , mainCategories[].class);