这是非常具体但让我难过.我们在解析时处理嵌套键常规数组几乎相同 – 有时在需要时添加额外信息,如下所示:
--- 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" ] }
一切都很酷很好.为内容输入多行字符串会变得更加混乱,但仍然可以正常工作(继续粘贴到Online YAML Parser或其他编译器以供参考):
--- #works: Test: - lorem - ipsum - dolor ? |- multiline Test : - lorem - ipsum: true - dolor ...
更深入,我的第二级数组中的多行字符串也可以正常工作,正如规范所期望的那样:
--- #works: Test: - |- multiline lorem - ipsum - dolor ? |- multiline Test : - lorem - ipsum: true - dolor ...
Wohoo!但是只要我在同一级别混合多行键和多行数组字符串,我的设置就会中断:
--- #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 ...