Lil*_*ver 6 ruby serialization hashmap
散列#to_s(检查的别名)始终以1.8散列样式输出数据:
{key: "value"}.to_s
=> "{:key=>\"value\"}"
Run Code Online (Sandbox Code Playgroud)
是否有任何核心方法将以1.9散列样式序列化它?
{key: "value"}.to_s
=> "{key: \"value\"}"
Run Code Online (Sandbox Code Playgroud)
我在已知数据上使用它来进行代码重构; 由于Ruby倾向于实现一切,我希望我只是在寻找错误的地方.
当然,你可以用丑陋的方式破解它
"{" + my_hash.to_a.map{|pair| pair[0].to_s + ": " + pair[1].inspect} * ",\n") + "}"
Run Code Online (Sandbox Code Playgroud)
但我希望有一个核心方法可以进行单元测试并完全正确.
小智 5
这对我有用......它尊重字符串键。
{key: "value"}.to_s.gsub(/(:(\w+)\s?=>\s?)/, "\\2: ")
Run Code Online (Sandbox Code Playgroud)
require 'json'
{key: "value"}.to_json
=> "{\"key\":\"value\"}"
Run Code Online (Sandbox Code Playgroud)