YAML'de boş sözlük için sözdizimi


97

YAML'de boş bir sözlüğü nasıl belirtirim? Yani boş json nesnesine anlamsal olarak eşdeğer olmalıdır {}.

Yanıtlar:


174

Kısa cevap: kullan {}

Yaml'de eşlemeleri (sözlükleri) belirtmenin iki yolu vardır; akış eşlemeleri ve blok eşlemeleri :

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

Akış eşleme stili, bu nedenle boş eşlemeleri temsil etmek için uygundur.


21
boş liste []
gigi2

Yine de neden uygun değil? Sadece "empty_block_mapping:" (ve bundan sonra hiçbir şey yok) nesi yanlış
Jonathan Hartley

6
@JonathanHartley, empty_block_mapping:boşluğun sağ tarafını sadece bırakarak eşittir empty_block_mapping: null, değil empty_block_mapping: {}.
rampion

8

Betamos'un doğru cevabını desteklemek için bu tür soruları yanıtlamak için genel teknik: irb'yi kullanın.

$ 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

Bir şeyi nasıl kodlayacağımdan emin olamadığımda bunu kullanıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.