Ask*_*kar 4 ruby hash lowercase
给定嵌套文档的哈希:
myHash = {
"MemberId"=>"ABC0001",
"MemberName"=>"Alan",
"details"=>[
{"LineNumber"=>"4.1", "Item"=>"A0001", "Description"=>"Apple"},
{"LineNumber"=>"5.1", "Item"=>"A0002"},
{"LineNumber"=>"6.1", "Item"=>"Orange"}
]
}
Run Code Online (Sandbox Code Playgroud)
我想改变它所以它看起来像:
{
"memberid"=>"ABC0001",
"membername"=>"Alan",
"details"=>[
{"linenumber"=>"4.1", "item"=>"A0001", "description"=>"Apple"},
{"linenumber"=>"5.1", "item"=>"A0002"},
{"linenumber"=>"6.1", "item"=>"Orange"}
]
}
Run Code Online (Sandbox Code Playgroud)
换句话说,我想在散列键中更改为小写.我知道我将不得不遍历哈希并使用downcase方法.如果有任何简单的方法在红宝石中这样做?
你可以简单地做
hash.transform_keys(&:downcase)
Run Code Online (Sandbox Code Playgroud)
将哈希键更改为小写。
你可以参考我的回答/sf/answers/3786312491/
class Hash
def downcase_key
keys.each do |k|
store(k.downcase, Array === (v = delete(k)) ? v.map(&:downcase_key) : v)
end
self
end
end
myHash.downcase_key
Run Code Online (Sandbox Code Playgroud)