解析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”数组与输入数据的顺序不同:(
答案 0 :(得分:4)
你在这里建造的地图不是数组。正如我记得的那样,列表语法是:
columns:
- col_1 : ~
- col_2 : ~
- col_3 : ~
- col_4 : ~
这将导致地图{“columns”=> [{“col_1”=> nil},{“col_2”=> nil},{“col_3”=> nil},{“col4”=> nil}]我想(没有测试过)。