如何将复杂的动态json转换为pojo类

时间:2018-11-13 10:54:35

标签: java pojo

我在json下方

[{
    "Maindata": "{\"SubData\":[{\"Name\":\"a\",\"rollnumber\":1,\"ParentName\":c},{\"Name\":\"b\",\"rollnumber\":2,\"ParentName\":d},{\"Name\":\"m\",\"rollnumber\":3,\"ParentName\":n}],\"schooltime\":123213,\"lunchtime\":2321,\"TeacherName\":\"abc\",\"ClassTeacherName\":\"abc\",\"Subjects\":null,\"ClassName\":\"xyz\",\"PrincipleName\":[\"sdffd\"],\"ClassID\":\"21312\",\"books\":\"\",\"classdata\":{\"scienceclass\":\"2hrs\",\"Projects\":\"True\",\"Games\":\"Nothing\"},\"real\":null,\"classuniqueid\":\"21323234234\",\"schoolbelltime\":21323321}"
}]

在Json上方,我们有

MainData-主数据有两个主要部分

SubData
ClassData

当我尝试查看上述Json查看器时,它将MainData显示为主要Json,而不显示子数据json

现在我想将上述json转换为Pojo类,以某种方式说,如果我给Subdata的名称指定为“ a”,它应该给我所有“ a”的详细信息。现在,子数据是动态的,现在有三个部分,有新学生数据时可以有100个部分,也可以只有两个部分。如何编写一个pojo类来读取并给出数据。

我正在使用gson,下面是我的pojo课

public class MyPojo
{
    private String Maindata;

    public String getMaindata ()
    {
        return Maindata;
    }

    public void setMaindata (String Maindata)
    {
        this.Maindata = Maindata;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [Maindata = "+Maindata+"]";
    }
} 

2 个答案:

答案 0 :(得分:0)

您可以使用Jackson将JSON数据转换为POJO,将POJO转换为JSON数据。 对于像您这样的复杂JSON数据,您将需要在相应的类中创建复杂类型的ArrayList。

答案 1 :(得分:0)

将有效的JSON粘贴到此site中,然后选择

目标语言:Java

注释样式:GSON

并下载Zip文件,然后将其提取,以获取JSON响应的所有POJO类