如何在YAML中创建一个空数组?

Jul*_*ann 167 ruby arrays yaml

array_with_three_elements:
- 1
- 2
- 3

empty_array:
Run Code Online (Sandbox Code Playgroud)

有没有办法指定empty_array:是一个没有元素的数组,比如[]?当我将它加载到ruby哈希时,我希望它知道它是一个数组.

谢谢

mae*_*ics 273

尝试使用[],如:

empty_array: []
Run Code Online (Sandbox Code Playgroud)

所以在Ruby中你有:

x = YAML::load("empty_array: []")
x # => {"empty_array" => []}
Run Code Online (Sandbox Code Playgroud)

  • 我只是想补充一点,你可以进入irb并键入类似:"require'yaml'; YAML :: dump({:hi => []})"以查看对象的yaml应该是什么. (32认同)
  • 我只想指出JSON是YAML 1.2的官方子集,几乎是早期版本的一部分.因此`[]`适用于空序列,`""适用于空字符串,而`{}`适用于空映射. (18认同)
  • @DanielH请注意,YAML解析器可能不支持`[]`或`{}`结构内的换行符,这是与JSON的主要不兼容性([Wikipedia](http://en.wikipedia.org/wiki / Yaml#cite_note-10))干杯 (2认同)
  • 许多解析器仍在使用YAML 1.1。这可能是维基百科在谈论的。1.2版本的全部目的是使JSON成为正式的子集。 (2认同)
  • 我最终出现在这个页面上的原因是 `empty_array:[]` 导致了解析器错误。它显然只发生在某些情况下。`YAML::load("empty_array:[]")` 有效,`YAML::load("{empty_array:[]}")` 失败,`YAML::load("{empty_array: []}") ` 也有效。注意 yaml 中的空格。 (2认同)