我正在传递一个如下所示的论点
def hi value
value=(here I need to convert back to Hash from string)
puts value['key']
end
hi "h['key']" #I am passing hash as string
我将哈希作为字符串传递,我需要转换回哈希,如上所示,是否可能?我之所以这样问是因为错误处理部分必须在函数内执行。
答案 0 :(得分:0)
我不太确定你的字符串的格式是什么,但我会假设你的意思是包含ruby文字哈希定义的字符串。例如:
hash_string = "{ 'id' => 3, 'name' => 'Fabricio' }"
首先,最佳做法是在括号中用参数定义ruby中的方法:
def to_hash(string)
# Contents of method
end
您可以将字符串解释为使用eval
在ruby文件中定义它(假设该字符串是有效的ruby语法),因此该函数可能如下所示:
def to_hash(string)
eval(string)
end
hash = to_hash("{ 'id' => 3, 'name' => 'Fabricio' }")
puts hash['id'] # => 3
puts hash['name'] # => "Fabricio"
我希望这是你的意图,对你有用。