考虑以下Yaml,它指定了两个空格的固定缩进:
yaml: >-2
First line
will fold.
Second line
should fold
as well.
反序列化为:
{
"yaml": "First line will fold.\nSecond line should fold as well."
}
结果文本按预期方式折叠。只有两行分开(换行符可以在“ fold。”和“ Second”两个词之间找到。)
现在,如果在“第二个”字之前添加了一些额外的空格,则折叠逻辑将中断。让我们假设这个额外的空间是文本本身的一部分,而不是Yaml缩进的一部分(因为后者已固定为两个空格):
yaml: >-2
First line
will fold.
Second line
should fold
as well.
此反序列化为:
{
"yaml": "First line will fold.\n\n Second line\nshould fold as well."
}
现在,将生成三行单独的行,并且第一行包含两个连续的换行符,这是意外的。
是否可以在不破坏折叠逻辑的情况下向Yaml文本块添加一些额外的间距缩进(缩进是文本数据的一部分,而不是Yaml缩进的一部分)?
答案 0 :(得分:1)
YAML表现as specified:
保留折叠换行符以“缩进”和空白行
您可以改用带引号的标量,它也可以进行折行,但是处理缩进的方式不同:
yaml:
"First line
will fold.
\ Second line
should fold
as well."
在这里,由于前导空格已被完全剥离,因此您可以避开应该满足的第一个空格。评估为
%YAML 1.2
---
!!map {
? !!str "yaml"
: !!str "First line will fold.\n Second line should fold as well."
}