gpt4 book ai didi

具有整数键的 Ruby Hash 更改为字符串键

转载 作者:数据小太阳 更新时间:2023-10-29 07:05:37 24 4
gpt4 key购买 nike

我使用整数键在 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

关于具有整数键的 Ruby Hash 更改为字符串键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25405120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com