Multiline YAML strings: keys versus array values

This is very specific, but it left me at a standstill. We consider nested keys + regular arrays almost the same when parsing - sometimes adding additional information when necessary, for example:

--- Entry 1: - lorem: true - ipsum - dolor Entry 2: - lorem - ipsum: true - dolor ... 

... which gives me this JSON:

 { "Entry 2": [ "lorem", { "ipsum": true }, "dolor" ], "Entry 1": [ { "lorem": true }, "ipsum", "dolor" ] } 

Everything is cool and beautiful. Entering multi-line strings for content becomes useless, but it still works fine (keep pasting them in Online YAML Parser or some other compiler for reference):

 --- #works: Test: - lorem - ipsum - dolor ? |- multiline Test : - lorem - ipsum: true - dolor ... 

going deeper, multiline strings in my second level array, as expected in the spec:

 --- #works: Test: - |- multiline lorem - ipsum - dolor ? |- multiline Test : - lorem - ipsum: true - dolor ... 

Wohoo! But as soon as I mix multiline keys and multiline array strings at the same level, my setup aborts:

 --- #breaks: Test: - |- multiline lorem ? |- multiline ipsum : true ? |- multiline Test : - lorem - ipsum: true - dolor ... 

How to fix it?

+5
source share
1 answer

YAML breaks if you mix keys and array elements at the same level. For this you do not need multiline strings:

 - 1 ? 2 : 3 

Why do you need to make out? An array? Display? This, however, works:

 - 1 - ? 2 : 3 

So, you can fix your YAML as follows:

 --- Test: - |- multiline lorem - ? |- multiline ipsum : true ? |- multiline Test : - lorem - ipsum: true - dolor ... 
+7
source

All Articles