ruby - 使用 JSON.parse 将 JSON 对象中的键顺序转换为 Ruby 哈希

标签 ruby json

在 Javascript 中,对象键是无序的,而在 Ruby 中,Hashes enumerate their values in the order that the corresponding keys were inserted .

在实践中,当将 JSON 对象转换为 Ruby 哈希时,Ruby 哈希中的键似乎是按照它们在 JSON 数据中写入的顺序排列的,例如:

irb(main):002:0> JSON.parse('{"a": 1, "b": 2}')
=> {"a"=>1, "b"=>2}

irb(main):005:0> JSON.parse('{"b": 1, "a": 2}')
=> {"b"=>1, "a"=>2}

我可以相信情况总是如此吗?

我想是的,因为在解析 JSON 时,我猜解析器会在发现键时插入键,但我找不到关于该主题的任何引用。

最佳答案

依靠假设,你可以。 Ruby 会跟踪键的顺序。

关于ruby - 使用 JSON.parse 将 JSON 对象中的键顺序转换为 Ruby 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31850741/

相关文章:

c - 使用json-c解析json文件

ruby-on-rails - 一键安装 Ruby/Rails/SQLite?

mysql - 当我运行 rake db :seed, 时,我不断收到 "rake aborted! ActionView::Template::Error: Missing host to link to! "

ruby - 将 UDP 数据包发送到 NTP 以取回数据包(在 ruby​​ 中)

json - 在 Gephi 中使用 JSON 文件

javascript - 如何使用 AJAX 和 JSON 将 SQL 结果存储在 JavaScript 数组中

ruby - 使用 Ruby 压缩位串

ruby - 访问类外的常量

java - MySQL JSON_SEARCH 和 JSON_REPLACE 不转义引号

java - 将 java.util.Date 转换为 json 格式