我如何将字符串转换为散列?
现在我使用:
eval "{'1627207:28320'=>'text'}"
=> {'1627207:28320'=>'text'}
但是“eval”不适合我的情况——从参数传递的字符串,在这种情况下它是不安全的
已编辑:
传递的字符串也可以是:
"{'1627207'=>'text', '11:167:28320'=>'text 1/text 2/unicode=>привет!'}"
然后需要结果哈希:
{'1627207:28320'=>'text',
'11:167:28320'=>'text 1 / text 2 / unicode=>привет!'}
最佳答案
str = "{'1627207:28320'=>'text'}"
p Hash[*str.delete("{}'").split('=>')] #{"1627207:28320"=>"text"}
针对不同的输入进行编辑:
str = "{'1627207:28320'=>'text', 'key2'=>'text2'}"
p Hash[*str.delete("{}'").split(/=>|, /)] #{"1627207:28320"=>"text", "key2"=>"text2"}
关于ruby - 字符串到哈希的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10410470/