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