Spring Boot 如何将POJO转换为Yaml

bd1hkmkf  于 2023-01-05  发布在  Spring
关注(0)|答案(1)|浏览(220)

我正在尝试将java POJO转换为yaml。

DumperOptions options = new DumperOptions();
  options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);

  Yaml yaml = new Yaml(options);

  String output = yaml.dump(yamlMeta);

我正在使用snakyaml库。当把java对象转换成yaml时,它并没有保持键的顺序。它是按照字母顺序排列它们。但是我希望这和POJO的顺序相同。

3htmauhk

3htmauhk1#

默认情况下,SnakeYAML库中的Yaml类将按字母顺序序列化键。如果您希望保持键在POJO中出现时的顺序,可以使用DumperOptions.PreserveStyle.K_BLOCK_MAP样式。
若要使用此样式,您需要将DumperOptions的FlowStyle设置为FlowStyle.BLOCK,并将DumperOptions的LineBreak设置为LineBreak.Win。
下面是一个示例,说明如何使用这些选项以与POJO中字段相同的顺序序列化POJO:

DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
options.setLineBreak(DumperOptions.LineBreak.WIN);
options.setPreserveStyle(DumperOptions.PreserveStyle.K_BLOCK_MAP);

Yaml yaml = new Yaml(options);

String output = yaml.dump(yamlMeta);

这应该使用与POJO中的字段顺序相同的键序列化POJO。

相关问题