Java 如何在转储期间使用SnakeYaml控制yaml缩进?

Java 如何在转储期间使用SnakeYaml控制yaml缩进?,java,snakeyaml,Java,Snakeyaml,我正在使用snakeyaml库解析yaml文件,然后从xml中转储它。我想知道是否有任何方法可以控制最终yaml缩进。例如,最终文件中的列表如下所示: list: - "first item" - "second item" 我想在列表项之前添加一些空格。最终结果如下: list: - "first item" - "second item" 我认为有可能添加自定义解析程序和重新输入。但也不允许我添加额外的空间。我已经看到,在ScalarNode类中,有一些标记包含关于起始列和结

我正在使用snakeyaml库解析yaml文件,然后从xml中转储它。我想知道是否有任何方法可以控制最终yaml缩进。例如,最终文件中的列表如下所示:

list:
- "first item"
- "second item"
我想在列表项之前添加一些空格。最终结果如下:

list:
   - "first item"
   - "second item"

我认为有可能添加自定义解析程序和重新输入。但也不允许我添加额外的空间。我已经看到,在ScalarNode类中,有一些标记包含关于起始列和结束列的信息,但这些标记仅用于日志记录目的。有人知道这种情况的解决方案吗?

转储选项。setIndicationIndent()将执行您需要的操作。

要应用所需的缩进,请应用下一个配置:

DumperOptions options = new DumperOptions();
options.setIndent(2);
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
options.setIndicatorIndent(2);
options.setIndentWithIndicator(true);

其中属性indicationIndentIndentWithIndicator应用此格式输出。

From:'块序列可以嵌套到块映射。请注意,在这种情况下,不必缩进序列。'但可能
DumperOptions options=new DumperOptions();选项。设置缩进(2)会有帮助。根据您的首选指示符,您可能还需要设置缩进<代码>选项。设置缩进(4)