- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从纯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 文件,库可以通过多种方式执行此操作。在这里,它使用 block indention indicator 在文字 block 模式下执行此操作。 。您自己请求了 block 样式 (DumperOptions.FlowStyle.BLOCK
),因此 block 指示符 (|
) 必须存在,但缩进指示符可能需要也可能不需要.
“YAML 文件的其余部分很好”只是因为那是缩进两个空格的单个 Java 字符串。
如果字符串以空格开头和/或字符串中存在特殊字符(例如换行符),YAML 发射器需要执行一些特殊操作。它们可以使用引号(单引号或双引号)或恢复为 block 文字(使用 |
)。如果字符串标量以一个或多个空格开头,则 block 文字需要有数字来指示缩进级别,否则将从第一行计算出太大的缩进级别。通常,在分析字符串后并根据上下文决定使用什么(带或不带引号的普通样式或 block 样式)。在您的情况下,您强制它阻止样式。
您可以通过从字符串中删除任何前导空格来从第一行获取 2
,但要删除 |
,您可能需要有一个没有换行符的字符串并删除 BLOCK 流样式的设置。
关于java - SnakeYaml 从字符串第一行转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31431528/
我正在为我的应用程序使用 Tank-Auth。我唯一的问题是激活和重置帐户密码。 用于登录、注册、注销;我对这些代码没有问题; $route['login'] = "/auth/login"; $ro
我是一名优秀的程序员,十分优秀!