YAML中空字典的语法

Bet*_*mos 70 yaml

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

Bet*_*mos 119

简答:使用 {}

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

block_mapping:
    name:  foo
    id:    bar
flow_mapping: { name: foo, id: bar }
empty_flow_mapping: {}
Run Code Online (Sandbox Code Playgroud)

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

  • 空列表将是[] (16认同)
  • @JonathanHartley只是将empty_block_mapping:的右侧留为空白,相当于empty_block_mapping:null,而不是empty_block_mapping:{}。 (3认同)

Pau*_*ell 8

回答这类问题的一般技巧,补充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
Run Code Online (Sandbox Code Playgroud)

每当我不确定如何编码某些东西时,我就会使用它.

  • 对于那些不认识它的人来说,“irb”是 Ruby 的 REPL。 (8认同)