YAML中空字典的语法


90

如何在YAML中表示空字典?即,它在语义上应该等效于空的json-object {}

Answers:


162

简短答案:使用 {}

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

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

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


21
空列表将是[]
gigi2

为什么为什么不合适呢?只是“ empty_block_mapping:”有什么问题(此后什么也没有)
Jonathan Hartley

6
@JonathanHartley只是将右侧的empty_block_mapping:空白留为empty_block_mapping: null,而不是empty_block_mapping: {}
风铃草

9

回答此类问题的通用技术,用以补充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

每当我不确定如何编码时,都会使用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.