Ruby on rails YAML数据序列问题

Ruby on rails YAML数据序列问题,ruby-on-rails,ruby,yaml,Ruby On Rails,Ruby,Yaml,在解析YAML文件之后,我需要在Ruby数组中有正确的值顺序 我有一个简单的例子来说明我的问题: x = "columns:\n col_1 : ~\n col_2 : ~\n col_3 : ~\n col4 : ~" s = YAML::load(x) 控制台输出提供: x=“列:\n列1:~\n列2:~\n列3:~\n列4:~” =>“列:\n列1:~\n列2:~\n列3:~\n列4:~” s=YAML::加载(x) =>{“列”=>{“列3”=>nil,“列4”=>nil,“列

在解析YAML文件之后,我需要在Ruby数组中有正确的值顺序

我有一个简单的例子来说明我的问题:

x = "columns:\n  col_1 : ~\n  col_2 : ~\n  col_3 : ~\n  col4 : ~"
s = YAML::load(x)
控制台输出提供:

x=“列:\n列1:~\n列2:~\n列3:~\n列4:~”
=>“列:\n列1:~\n列2:~\n列3:~\n列4:~”
s=YAML::加载(x)
=>{“列”=>{“列3”=>nil,“列4”=>nil,“列1”=>nil,“列2”=>nil}


“columns”数组的顺序与输入数据中的顺序不同:(

您在这里构建的是一个映射,而不是数组。正如我所记得的,列表语法是:

columns:  
- col_1 : ~
- col_2 : ~
- col_3 : ~
- col_4 : ~

这将导致一个映射{“columns”=>[{“colu 1”=>nil},{“colu 2”=>nil},{“colu 3”=>nil},{“col4”=>nil}]我想(没有测试它)。

您在这里构建的是一个映射而不是一个数组。正如我记得的那样,列表语法是:

columns:  
- col_1 : ~
- col_2 : ~
- col_3 : ~
- col_4 : ~

这将产生一个映射{“columns”=>[{“colu 1”=>nil}、{“colu 2”=>nil}、{“colu 3”=>nil}、{“col4”=>nil}]我想(没有测试过)。

非常感谢。你是对的。必须学习更多的YAML规范:)非常感谢。你是对的。必须学习更多的YAML规范:)