Sintassi per dizionario vuoto in YAML


97

Come si denota un dizionario vuoto in YAML? Cioè dovrebbe essere semanticamente equivalente all'oggetto json vuoto {}.

Risposte:


174

Risposta breve: usa {}

Ci sono due modi per denotare le mappature (dizionari) in yaml; mappature di flusso e mappature a blocchi :

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

Lo stile di mappatura del flusso è quindi adatto per rappresentare mappature vuote.


21
elenco vuoto sarebbe []
gigi2

Perché però non è adatto? Cosa c'è di sbagliato con solo "empty_block_mapping:" (e niente dopo)
Jonathan Hartley

6
@ JonathanHartley solo lasciare il lato destro dello empty_block_mapping:spazio vuoto è l'equivalente di empty_block_mapping: null, no empty_block_mapping: {}.
rampion

8

Tecnica generale per rispondere a questo tipo di domande, per integrare la risposta corretta di Betamos: usa 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

Lo uso ogni volta che non sono sicuro di come codificare qualcosa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.