如何从YAML文件中排除类?

时间:2015-02-02 18:20:51

标签: java snakeyaml

我使用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
  }

1 个答案:

答案 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如何将数据解析为用户实例。