Składnia pustego słownika w YAML


90

Jak oznaczyć pusty słownik w YAML? To znaczy powinien być semantycznie równoważny z pustym obiektem json {}.

Odpowiedzi:


163

Krótka odpowiedź: użyj {}

Istnieją dwa sposoby oznaczania mapowań (słowników) w yaml; mapowania przepływu i mapowania bloków :

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

Styl mapowania przepływu jest zatem odpowiedni do reprezentowania pustych mapowań.


21
pusta lista to []
gigi2

Dlaczego jest to nieodpowiednie? Co jest nie tak z „empty_block_mapping:” (i nic po tym)
Jonathan Hartley

6
@JonathanHartley pozostawienie prawej strony empty_block_mapping:pustego pola jest odpowiednikiem empty_block_mapping: nullnie empty_block_mapping: {}.
rampion

8

Ogólna technika odpowiadania na tego typu pytania, uzupełniająca poprawną odpowiedź Betamos: użyj 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

Używam tego, gdy nie jestem pewien, jak coś zakodować.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.