YAML 中空字典的语法

如何在 YAML 表示一个空的字典? 也就是说,它应该在语义上等同于空的 json-object {}

78539 次浏览

简短的回答: 使用 {}

在 yaml 中有两种表示映射(字典)的方法: 流映射块映射块映射:

block_mapping:
name:  foo
id:    bar
flow_mapping: { name: foo, id: bar }
empty_flow_mapping: {}

因此,流映射样式适合于表示空映射。

回答这类问题的一般技巧,以补充 Betamos 的正确答案: 使用 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

每当我不确定如何编码的时候,我就用这个。