Sintaks untuk kamus kosong di YAML

91

Bagaimana cara menunjukkan kamus kosong di YAML? Yaitu harus secara semantik setara dengan objek-json kosong {}.

Betamos
sumber

Jawaban:

163

Jawaban singkatnya: gunakan {}

Ada dua cara untuk menunjukkan pemetaan (kamus) di yaml; aliran pemetaan dan blok pemetaan :

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

Gaya pemetaan aliran dengan demikian cocok untuk merepresentasikan pemetaan kosong.

Betamos
sumber
21
daftar kosong akan menjadi []
gigi2
Mengapa itu tidak cocok? Apa yang salah dengan hanya "empty_block_mapping:" (dan tidak ada lagi setelah itu)
Jonathan Hartley
6
@JonathanHartley hanya membiarkan sisi kanan empty_block_mapping:kosong sama dengan empty_block_mapping: null, tidak empty_block_mapping: {}.
rampion
8

Teknik umum untuk menjawab pertanyaan jenis ini, untuk melengkapi jawaban Betamos yang benar: gunakan 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

Saya menggunakan ini setiap kali saya tidak yakin bagaimana menyandikan sesuatu.

Paul Cantrell
sumber