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

306
array_with_three_elements:
- 1
- 2
- 3

empty_array:

有没有办法指定 empty_array: 是一个没有元素的数组,就像 [] 这样?当我将其加载到 Ruby 哈希中时,我希望它知道它是一个数组。

17
你尝试过使用 [] 吗? - Jimmy
1个回答

490

尝试使用[],例如:

empty_array: []

所以在 Ruby 中你有:

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

36
我只是想补充一下,你可以进入irb并输入类似以下的内容:“require 'yaml'; YAML::dump({ :hi => [] })”,以查看对象的yaml应该是什么。 - Mike A.
33
我想指出的是,JSON是YAML 1.2的官方子集,几乎也是早期版本的子集。因此,[]表示空序列,""表示空字符串,{}表示空映射。 - Daniel H
4
注意,YAML解析器可能不支持在[]{}结构内部的换行符,这与JSON存在重大不兼容性(摘自Wikipedia)。 - oHo
4
许多解析器仍在使用YAML 1.1版本;这可能是维基百科所提到的。发布1.2版的主要目的是将JSON作为官方子集。 - Daniel H
严格的YAML怎么样? - Xaser
2
我来到这个页面的原因是empty_array:[]导致解析器错误。显然仅在某些情况下才会发生这种情况。YAML :: load(“empty_array:[]”)有效,YAML :: load("{ empty_array:[] }")失败,YAML :: load("{ empty_array:[] }")也有效。请注意YAML中的空格。 - maurice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接