YAML数据序列问题

时间:2009-09-29 15:58:47

标签: 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 =“columns:\ n col_1:〜\ n col_2:〜\ n col_3:〜\ n col4:〜”
  => “columns:\ n col_1:〜\ n col_2:〜\ n col_3:〜\ n col4:〜”
  s = YAML :: load(x)
  => {“columns”=> {“col_3”=> nil,“col4”=> nil,“col_1”=> nil,“col_2”=> nil}}

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

1 个答案:

答案 0 :(得分:4)

你在这里建造的地图不是数组。正如我记得的那样,列表语法是:

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

这将导致地图{“columns”=> [{“col_1”=> nil},{“col_2”=> nil},{“col_3”=> nil},{“col4”=> nil}]我想(没有测试过)。