如何转换 Ruby 哈希,使其所有键都是字符串

Lei*_*och 1 ruby hash stringify

我有一个 ruby​​ 哈希,如下所示:

{ id: 123, name: "test" }
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

{ "id" => 123, "name" => "test" }
Run Code Online (Sandbox Code Playgroud)

Lei*_*och 5

如果您使用 Rails 或 ActiveSupport:

hash = { id: 123, description: "desc" }
hash.stringify #=> { "id" => 123, "name" => "test" }
Run Code Online (Sandbox Code Playgroud)

如果您不是:

hash = { id: 123, name: "test" }
Hash[hash.map { |key, value| [key.to_s, value] }] #=> { "id" => 123, "name" => "test" }
Run Code Online (Sandbox Code Playgroud)

  • @AlexPan 是的,我做到了。StackOverflow 的一项功能是在提交问题时提供答案。目标是知识共享。 (2认同)