1

我使用 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文件中的类?

我也不想保存空实体。例如

- {
    name: null,
    age: 14
  }

应该

- {
    age: 14
  }
4

1 回答 1

0
Representer representer = new Representer();
representer.addClassTag(com.test.yml.User.class, Tag.MAP);
Yaml yaml = new Yaml(representer);

此代码说 - 请为自定义类用户使用 Tag.MAP。由于 MAP 标签是隐式的,标签将一起消失。但是要将其解析回来,您必须指示 SnakeYAML 如何将数据解析为 User 实例。

于 2015-02-13T14:51:09.627 回答