需要将字符串转换为哈希,然后将哈希转换为字符串

时间:2015-01-07 07:29:23

标签: ruby hash

我正在传递一个如下所示的论点

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

我将哈希作为字符串传递,我需要转换回哈希,如上所示,是否可能?我之所以这样问是因为错误处理部分必须在函数内执行。

1 个答案:

答案 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"

我希望这是你的意图,对你有用。