SnakeYaml从String First Line转储

杜卡兹035

我正在尝试从纯Java字符串创建yaml文件。但是,我创建的yaml文件的初始行为:

|2

yaml文件的其余部分都很好,但是第一行非常有趣。我的DumperOptions如下;

DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
Yaml yaml = new Yaml(options);
// Build the complex String here.
String dump = yaml.dump(builder.toString());

是的,我可以直接从StringBuilder中删除第一行,但是我想知道解决方案,甚至是问题的原因。

谢谢

安通

没问题,如果将单个字符串转储到YAML文件中,库可以通过多种方式进行转储。在这里,它使用字块缩进指示器在文字字块模式下执行此操作您自己请求了块样式(DumperOptions.FlowStyle.BLOCK),因此块指示符(|)必须存在,但是缩进指示符可能是必需的,也可能不是必需的。

“ YAML文件的其余部分很好”只是因为那是您的单个Java字符串以两个空格缩进。

如果字符串以空格开头和/或字符串中包含特殊字符(例如换行符),则YAML发射器需要做一些特殊的事情。他们可以使用引号(单引号或双引号)或还原为块文字(使用|)。如果字符串标量以一个或多个空格开头,则块字面量必须有数字来表示缩进级别,否则,将从第一行计算出太大的缩进级别。通常,在对字符串进行分析后并根据上下文决定使用什么(使用带引号或不带引号的普通样式或块样式)。在您的情况下,您可以强制其阻止样式。

您可以通过2从字符串中删除任何前导空格来从第一行中获取,但是要摆脱|,您可能需要一个不带换行符的字符串并删除BLOCK流样式的设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用SnakeYAML转储嵌套列表

来自分类Dev

如何使用SnakeYAML转储嵌套列表

来自分类Dev

Java SnakeYaml-防止转储引用名称

来自分类Dev

SnakeYaml 转储函数用单引号写入

来自分类Dev

使用 vector<string> 时核心转储

来自分类Dev

How do I get the length of the first line in a multi line string?

来自分类Dev

Replace a string which is present on first line in UNIX file

来自分类Dev

Spring MVC-一种将RequestBody的未知参数转储到Map <String,String>变量中的方法?

来自分类Dev

Tomcat线程转储

来自分类Dev

恢复Django转储

来自分类Dev

NodeJS MySQL转储

来自分类Dev

RuntimeBrowser类转储

来自分类Dev

细分(核心转储)

来自分类Dev

转储诊断

来自分类Dev

了解Wikimedia转储

来自分类Dev

转储诊断

来自分类Dev

mysqldump压缩的转储

来自分类Dev

使用gdb检查核心转储时,是否可以运行函数(如std :: string.size())?

来自分类Dev

svnrdump转储和svnadmin转储之间的区别

来自分类Dev

从全内存转储中提取进程转储

来自分类Dev

在Linux核心转储中仅转储堆栈跟踪

来自分类Dev

自动进行线程转储或堆转储

来自分类Dev

动态转储内存时的核心转储

来自分类Dev

不保存崩溃转储/小型转储

来自分类Dev

泡菜转储熊猫DataFrame

来自分类Dev

漂亮的打印JSON转储

来自分类Dev

故障转储分析:CxxUnhandledExceptionFilter

来自分类Dev

SQL转储文件上传

来自分类Dev

Rails打印(转储)变量