ฉันจะสร้างอาร์เรย์ว่างใน YAML ได้อย่างไร


190
array_with_three_elements:
- 1
- 2
- 3

empty_array:

มีวิธีใดที่จะระบุว่า empty_array: เป็นอาร์เรย์ที่ไม่มีอิลิเมนต์เช่น with []หรือไม่ เมื่อฉันโหลดมันลงในแฮชทับทิมฉันต้องการให้มันรู้ว่ามันเป็นอาร์เรย์

ขอบคุณ


14
คุณลองใช้[]หรือยัง
จิมมี่

คำตอบ:


307

ลองใช้[]เช่น:

empty_array: []

ดังนั้นใน Ruby คุณมี:

x = YAML::load("empty_array: []")
x # => {"empty_array" => []}

32
ฉันแค่อยากจะเพิ่มว่าคุณสามารถเข้าไปใน irb และพิมพ์สิ่งที่ชอบ: "need 'yaml'; YAML :: dump ({: hi => []})" เพื่อดูว่า yaml ควรเป็นวัตถุอะไร
Mike A.

20
ฉันต้องการจะชี้ให้เห็นว่า JSON เป็นชุดย่อยอย่างเป็นทางการของ YAML 1.2 และเกือบจะเป็นชุดย่อยของรุ่นก่อนหน้า ดังนั้นจึงใช้[]งานได้สำหรับลำดับที่ว่างเปล่า""ทำงานสำหรับสตริงที่ว่างเปล่าและ{}ทำงานสำหรับการทำแผนที่ที่ว่างเปล่า
Daniel H

2
@DanielH โปรดทราบว่าตัวแยกวิเคราะห์ YAML อาจไม่รองรับการแบ่งบรรทัดภายใน[]หรือ{}โครงสร้างซึ่งเป็นความไม่ลงรอยกันที่สำคัญกับ JSON (คัดลอกวางจากWikipedia ) ไชโย
olibre

2
ตัวแยกวิเคราะห์จำนวนมากยังคงใช้ YAML 1.1 อยู่ นี่อาจเป็นสิ่งที่ Wikipedia กำลังพูดถึง จุดทั้งหมดของการวางจำหน่าย 1.2 คือการทำให้ JSON เป็นชุดย่อยอย่างเป็นทางการ
Daniel H

แล้ว strictyaml ล่ะ?
Xaser
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.