YAML数据顺序问题

发布于 2024-08-05 22:54:10 字数 497 浏览 2 评论 0原文

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

我有一个简单的例子显示我的问题:

x = "columns:\n  col_1 : ~\n  col_2 : ~\n  col_3 : ~\n  col4 : ~"
s = YAML::load(x)

控制台输出给出:

x = "列:\n col_1 : ~\n col_2 : ~\n col_3 : ~\n col4 : ~"
=> “列:\n col_1 : ~\n col_2 : ~\n col_3 : ~\n col4 : ~”
s = YAML::load(x)
=> {“列”=>{“col_3”=>nil,“col4”=>nil,“col_1”=>nil,“col_2”=>nil}}

columns" 数组的顺序不同它在输入数据中:(

I need to have correct order of values inside Ruby array after parsing YAML file.

I have this simple example showing my issue:

x = "columns:\n  col_1 : ~\n  col_2 : ~\n  col_3 : ~\n  col4 : ~"
s = YAML::load(x)

console output gives :

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" array is in different sequence as it was in input data :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

新雨望断虹 2024-08-12 22:54:10

您在这里构建的是地图而不是数组。据我所知,列表语法是:

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

这将生成一个映射 {"columns"=>; [{"col_1"=>nil},{"col_2"=>nil}, {"col_3"=>nil}, {"col4"=>nil}] 我想(没有测试)。

You're building a map not a array here. As fare as I do remember list syntax is:

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

This will result in a map {"columns"=> [{"col_1"=>nil},{"col_2"=>nil}, {"col_3"=>nil}, {"col4"=>nil}] I suppose (did not test it).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文