How do I denote an empty dictionary in YAML? I.e. it should be semantically equivalent to the empty json-object {}
.
You can use ~ or null . Show activity on this post. If you want an empty string, rather than a null value, you can use two single quotes.
Representing null values in YAML There are several ways to represent null values in YAML. Empty values are also considered to be null values.
Thus [] works for an empty sequence, "" works for an empty string, and {} works for an empty mapping. Many parsers are still on YAML 1.1; this is probably what Wikipedia is talking about.
Short answer: use {}
There are two ways to denote mappings (dictionaries) in yaml; flow mappings and block mappings:
block_mapping: name: foo id: bar flow_mapping: { name: foo, id: bar } empty_flow_mapping: {}
The flow mapping style is thus suitable for representing empty mappings.
General technique for answering this type of question, to supplement Betamos’s correct answer: use irb.
$ irb 2.2.0 :001 > require 'yaml' => true 2.2.0 :002 > puts({}.to_yaml) # original question --- {} => nil 2.2.0 :003 > puts({ mixed_types: [{}, "string", :symbol, {symbol: "value"}, nil, 3] }.to_yaml) --- :mixed_types: - {} - string - :symbol - :symbol: value - - 3 => nil
I use this whenever I’m unsure how to encode something.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With