【发布时间】:2020-04-22 00:44:58
【问题描述】:
我有一个类的 ArrayList,如下所示:
public class Person {
String name;
String age
List<String> education = new ArrayList<String> ();
List<String> family = new ArrayList<String> ();
List<String> previousjobs = new ArrayList<String>();
}
我想把这个列表写成 Json 并尝试了这段代码:
Writer out = new PrintWriter("./test.json");
mapper.writerWithDefaultPrettyPrinter().writeValueas(out, persons);
并收到此错误消息:
没有找到类~~~~~~的序列化器,也没有找到创建BeanSerializer的属性(为避免异常,禁用SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过引用链:java.util.ArrayList[0])`
我尝试添加 mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS),但由于某些未知原因,它使所有 Person 对象都为空。
我做错了什么?
【问题讨论】:
-
我有一个名为 people 的数组列表。当我执行 mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS) 时,它给了我 [{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}]。没有它,它只会创建一个损坏的 json 文件:“ [”。
-
能把完整的代码放上来吗
-
我的代码非常混乱,因为我是 Java 新手。我正在抓取维基百科并收集政客的数据。
-
您发布的示例没有公共成员。序列化类很可能在那些 to 序列化的对象中根本看不到任何东西。
-
Java 的默认访问修饰符(如果您没有指定其他内容,就像您在此处所做的那样)只允许在同一个包内或从类本身进行访问。最佳做法是添加(公共)getter 和 setter。
标签: java json serialization jackson