这是非常具体的,但让我感到困惑。我们在解析时处理嵌套键 常规阵列几乎相同 - 有时在需要时添加额外的信息,例如:
---
Entry 1:
- lorem:
true
- ipsum
- dolor
Entry 2:
- lorem
- ipsum:
true
- dolor
...
…给我这个JSON:
{
"Entry 2": [
"lorem",
{
"ipsum": true
},
"dolor"
],
"Entry 1": [
{
"lorem": true
},
"ipsum",
"dolor"
]
}
都很凉爽。输入多行字符串的内容会变得更加混乱,但仍然可以正常工作(继续将其粘贴到在线yaml解析器或其他编译器中以供参考):
---
#works:
Test:
- lorem
- ipsum
- dolor
? |-
multiline
Test
:
- lorem
- ipsum:
true
- dolor
...
在我的第二级阵列中,更深入的多行字符串,正如规格所预期的:
---
#works:
Test:
- |-
multiline
lorem
- ipsum
- dolor
? |-
multiline
Test
:
- lorem
- ipsum:
true
- dolor
...
wohoo!但是,一旦我 mix 多行键和同一级别的多行数组字符串,我的设置断开:
---
#breaks:
Test:
- |-
multiline
lorem
? |-
multiline
ipsum
:
true
? |-
multiline
Test
:
- lorem
- ipsum:
true
- dolor
...
如何解决这个问题?
yaml如果在同一级别上混合键和数组项目,则会断裂。您不需要多行字符串:
- 1
? 2
: 3
这个解析应该做什么?数组?映射?但是,这有效:
- 1
- ? 2
: 3
因此您可以这样修复YAML:
---
Test:
- |-
multiline
lorem
- ? |-
multiline
ipsum
:
true
? |-
multiline
Test
:
- lorem
- ipsum:
true
- dolor
...