Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用子对象反序列化对象_Java_Json_Jackson - Fatal编程技术网

Java 用子对象反序列化对象

Java 用子对象反序列化对象,java,json,jackson,Java,Json,Jackson,我有一个Json列表,使用对象和子对象 { "id":"154", "name":"peter", "children": [ { "id":"122", "name": "mick", "children":[] }, { "id":"123",

我有一个Json列表,使用对象和子对象

{
 "id":"154",
 "name":"peter",
 "children": [
               {
                "id":"122",
                "name": "mick",
                "children":[]
               },
               {
                "id":"123",
                "name": "mick",
                "children":[]
               }
            ]
}
以下是我的对象的类:

public class person{
                    private String id;
                    private String name;
                    private List<person> children;

//getters and setters
}
公共类人物{
私有字符串id;
私有字符串名称;
私人名单儿童;
//接球手和接球手
}
当我尝试反序列化此对象时,出现以下错误

无法反序列化启动\u数组令牌之外的人员的实例


我该怎么办?

JSON包含一个person数组。
{
 "id":"154",
 "name":"peter",
 "children": 
               {
                "id":"122",
                "name": "mick",
                "children":[],
               }
               {
                "id":"123",
                "name": "mick",
                "children":[],
               }

}
你的班级有一个
人的名单

将JSON更改为建议的
@Naveed Yadav
,或者将类更改为

public class Person{
             private String id;
             private String name;
             private Person[] children;

//getters and setters
}

(顺便说一句,Java中的类名应该是大写)

您需要更改POJO声明,如下所示:-

 public class person{
                private String id;
                private String name;
                private List<Children> children;

               //getters and setters

   private class Children{
                private String id;
                private String name;
                private String[] children;

}
公共类人物{
私有字符串id;
私有字符串名称;
私人名单儿童;
//接球手和接球手
私立班儿童{
私有字符串id;
私有字符串名称;
私有字符串[]子对象;
}

修复JSON正文中的语法错误,您将处于良好状态:

{
 "id":"154",
 "name":"peter",
 "children": [
               {
                "id":"122",
                "name": "mick",
                "children":[], <== Excess comma
               } <== Missing comma 
               {
                "id":"123",
                "name": "mick",
                "children":[], <== Excess comma
               }
            ]
}

您的JSON无效。感谢您的帮助,我收到的JSON没有问题,无法更改。不过,我可能重写了它,但有一些错误。@Jean然后请用正确的JSONO更新您的问题,或者更改为
private person[]children;
{
    "id": "154",
    "name": "peter",
    "children": [{
            "id": "122",
            "name": "mick",
            "children": []
        },
        {
            "id": "123",
            "name": "mick",
            "children": []
        }
    ]
}