ruby - 是否有与 'new' 哈希语法等效的 Ruby Hash#to_s?

标签 ruby serialization hashmap

Hash#to_s (inspect 的别名)始终以 1.8 哈希样式输出数据:

{key: "value"}.to_s
=> "{:key=>\"value\"}"

是否有任何核心方法将其序列化为 1.9 哈希样式?

{key: "value"}.to_s
=> "{key: \"value\"}"

我在已知数据上使用它进行代码重构;由于 Ruby 倾向于实现所有内容,我希望我只是找错了地方。

当然,你可以用丑陋的方式破解它

"{" + my_hash.to_a.map{|pair| pair[0].to_s + ": " + pair[1].inspect} * ",\n") + "}"

但我希望有一个经过单元测试且完全正确的核心方法。

最佳答案

这对我有用......并且它尊重字符串键。

{key: "value"}.to_s.gsub(/(:(\w+)\s?=>\s?)/, "\\2: ")

关于ruby - 是否有与 'new' 哈希语法等效的 Ruby Hash#to_s?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21582464/

相关文章:

ios - Swift 推断闭包参数之谜

ruby - 以编程方式向 YAML 添加注释

java - 安装 Rhodes 框架时遇到问题

.net - 自定义 WCF DataContractSerializer

Scala:哈希忽略初始大小(数十亿条目的快速哈希表)

ruby - 无法 'brew link' imagemagick

.net - XML 序列化丢失命名空间

jQuery 序列化对象?

java - 从 JSON 字符串创建 Hashmap

android - 如何使用共享首选项在 android 中存储 HashMap <Integer, String>?