假设我有以下哈希表或嵌套哈希表:
我想创建一个方法,它以哈希作为参数,并递归地将所有键(键是符号,例如
我做错了什么,如何将所有键转换为像这样的字符串:
h = { :a1 => { :b1 => "c1" },
:a2 => { :b2 => "c2"},
:a3 => { :b3 => "c3"} }
我想创建一个方法,它以哈希作为参数,并递归地将所有键(键是符号,例如
:a1
)转换为字符串(例如"a1"
)。到目前为止,我已经想出了以下的方法,但它不能正常工作,返回结果为{"a1"=>{:b1=>"c1"}, "a2"=>{:b2=>"c2"}, "a3"=>{:b3=>"c3"}}
。:def stringify_all_keys(hash)
stringified_hash = {}
hash.each do |k, v|
stringified_hash[k.to_s] = v
if v.class == Hash
stringify_all_keys(stringified_hash[k.to_s])
end
end
stringified_hash
end
我做错了什么,如何将所有键转换为像这样的字符串:
{"a1"=>{"b1"=>"c1"}, "a2"=>{"b2"=>"c2"}, "a3"=>{"b3"=>"c3"}}
JSON.parse(h.to_json)
。 - Jake H