带有整数键的Ruby Hash更改为字符串键
发布时间:2020-12-17 03:29:10 所属栏目:百科 来源:网络整理
导读:我使用整数键在 ruby中创建一个哈希并将其作为 JSON响应发送.然后解析此 JSON并将哈希转换回ruby.键现在是字符串文字. 我知道JSON不支持整数键但是我遇到了这个方法,它基本上解析了哈希,因此它有符号键. JSON.parse(hash,{:symbolize_names = true}) 是否有
我使用整数键在
ruby中创建一个哈希并将其作为
JSON响应发送.然后解析此
JSON并将哈希转换回ruby.键现在是字符串文字.
我知道JSON不支持整数键但是我遇到了这个方法,它基本上解析了哈希,因此它有符号键. JSON.parse(hash,{:symbolize_names => true}) 是否有类似的函数来获取原始整数键 a = {1 => 2} a.keys => [1] b = JSON.parse(JSON.generate(a)) b.keys => ["1"] 我的哈希很复杂.值本身是一个应该有整数键的哈希值.有多个这样的嵌套级别 解决方法
据我所知
Nothing in JSON,但转换很容易:
json_hash = {"1" => "2" } integer_hash = Hash[json_hash.map{|k,v|[ k.to_i,v.to_i ]}] => {1 => 2} 所以,我们采取所有的关键&来自初始哈希值(json_hash)的值,在它们上调用to_i并将它们放入新的哈希值(integer_hash)中. 即使嵌套也不会阻塞.你可以在一个方法中做到这一点: def to_integer_keys(hash) keys_values = hash.map do |k,v| if(v.kind_of? Hash) new_value = to_integer_keys(v) #it's a hash,let's call it again else new_value = v.to_i #it's a integer,let's convert end [k.to_i,new_value] end Hash[keys_values] end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |