java - 反序列化带有子对象的对象

标签 java json jackson

我有一个使用带有子对象的 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
}

当我尝试反序列化该对象时,出现以下错误

Can not deserialize instance of person out of START_ARRAY token

我应该做什么?

最佳答案

JSON 包含人员数组。 您的类(class)有一个 person 列表。

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

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

//getters and setters
}

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

关于java - 反序列化带有子对象的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50097708/

相关文章:

java - 为什么 Observable 是类而 Observer 是接口(interface)?

java - 在 Android ListView 中的文本旁边显示来自 REST 服务的图像

java - jackson 内心深处 - 我如何从 setter/getter 中获取属性名称

java - JSON 序列化对象的日期格式为 2006-10-04T19 :49:49. 无法对其进行反序列化

java - 只能从同一个库组中调用方法

java - Swing 组件中隐藏的快捷方式是什么?

javascript - 如何在不丢失 javascript 结构的情况下过滤嵌套树对象?

json - 使用jq更新字典数组中的一个值

android - 读取 JSON boolean 值

java - Jackson Json,编码 ByteBuffer