我使用SnakeYAML将数据保存到YAML文件中。
DumperOptions options = new DumperOptions();
options.setPrettyFlow(true);
options.setAllowReadOnlyProperties(true);
Yaml yml = new Yaml(options);
FileWriter writer = new FileWriter(path);
yml.dump(object, writer);
writer.flush();
writer.close();
当我尝试保存结果时,我得到了这样的内容
!!com.test.yml.User
users:
- {
name: Bob,
age: 14
}
- {
name: John,
age: 15
}
如何从文件中避免使用课程!!com.test.yml.User
?
此外,我不想保存null实体。例如
- {
name: null,
age: 14
}
应该是
- {
age: 14
}
答案 0 :(得分:0)
Representer representer = new Representer();
representer.addClassTag(com.test.yml.User.class, Tag.MAP);
Yaml yaml = new Yaml(representer);
此代码说 - 请将Tag.MAP用于自定义类User。由于MAP标记是隐式的,因此标记将一起消失。但要解析它,你必须指示SnakeYAML如何将数据解析为用户实例。