Syntaxe pour dictionnaire vide en YAML


90

Comment désigner un dictionnaire vide en YAML? C'est-à-dire qu'il devrait être sémantiquement équivalent à l'objet json vide {}.

Réponses:


163

Réponse courte: utiliser {}

Il existe deux façons de désigner les mappages (dictionnaires) dans yaml; mappages de flux et mappages de blocs :

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

Le style de mappage de flux convient donc pour représenter des mappages vides.


21
la liste vide serait []
gigi2

Pourquoi est-ce inapproprié? Quel est le problème avec juste "empty_block_mapping:" (et rien à la suite)
Jonathan Hartley

6
@JonathanHartley laisser juste le côté droit du empty_block_mapping:blanc équivaut à empty_block_mapping: nullnon empty_block_mapping: {}.
rampion

8

Technique générale pour répondre à ce type de question, pour compléter la bonne réponse de Betamos: utilisez 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

J'utilise ceci chaque fois que je ne sais pas comment encoder quelque chose.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.