Par*_*mol 7 arrays string json yaml multilinestring
这是非常具体但让我难过.我们在解析时对待嵌套键+常规数组几乎相同 - 有时在需要时添加额外信息,如下所示:
---
Entry 1:
- lorem:
true
- ipsum
- dolor
Entry 2:
- lorem
- ipsum:
true
- dolor
...
Run Code Online (Sandbox Code Playgroud)
...这给了我这个JSON:
{
"Entry 2": [
"lorem",
{
"ipsum": true
},
"dolor"
],
"Entry 1": [
{
"lorem": true
},
"ipsum",
"dolor"
]
}
Run Code Online (Sandbox Code Playgroud)
一切都很酷很好.为内容输入多行字符串会变得更加混乱,但仍然可以正常工作(继续粘贴到在线YAML Parser或其他编译器以供参考):
---
#works:
Test:
- lorem
- ipsum
- dolor
? |-
multiline
Test
:
- lorem
- ipsum:
true
- dolor
...
Run Code Online (Sandbox Code Playgroud)
更深入,我的第二级数组中的多行字符串也可以正常工作,正如规范所期望的那样:
---
#works:
Test:
- |-
multiline
lorem
- ipsum
- dolor
? |-
multiline
Test
:
- lorem
- ipsum:
true
- dolor
...
Run Code Online (Sandbox Code Playgroud)
Wohoo!但是只要我在同一级别混合多行键和多行数组字符串,我的设置就会中断:
---
#breaks:
Test:
- |-
multiline
lorem
? |-
multiline
ipsum
:
true
? |-
multiline
Test
:
- lorem
- ipsum:
true
- dolor
...
Run Code Online (Sandbox Code Playgroud)
如何解决?
fly*_*lyx 10
如果在同一级别混合键和数组项,则YAML会中断.您不需要多行字符串:
- 1
? 2
: 3
Run Code Online (Sandbox Code Playgroud)
这应该解析什么?数组?映射?但是,这有效:
- 1
- ? 2
: 3
Run Code Online (Sandbox Code Playgroud)
所以你可以像这样修复你的YAML:
---
Test:
- |-
multiline
lorem
- ? |-
multiline
ipsum
:
true
? |-
multiline
Test
:
- lorem
- ipsum:
true
- dolor
...
Run Code Online (Sandbox Code Playgroud)