如何将字符串中的嵌套哈希转换回哈希?

时间:2018-05-30 04:24:56

标签: ruby string parsing hash nested

我将嵌套哈希存储在一个文件中,在检索它时,我希望以哈希形式返回,而不是字符串 。当我读取文件时,它会给我一个字符串,然后我如何将其解析回哈希。 这是文件中的字符串哈希:

{"SONGS"=>{1=>["2018-05-29 18:19:14 +0530", "HAPPY", "Meri Sapnon Ki Rani"]}}

1 个答案:

答案 0 :(得分:0)

Already in SO.

警告安全风险!

对于您的字符串,您需要传递给eval,但这是 SECURITY RISK

string = '{"SONGS"=>{1=>["2018-05-29 18:19:14 +0530", "HAPPY", "Meri Sapnon Ki Rani"]}}'
p eval(string).class

如果您需要在文件中存储数据结构,我建议您查看YAML模块。例如,请查看this post

正如评论中所述:

  • 还要考虑安全问题,look this post
  • 考虑改变一点字符串语法以使用JSON结构。见下文。

使用JSON:

require 'json'
json_string = '{"songs":{"1":{"date": "2018-05-29 18:19:14 +0530", "title":"HAPPY", "name":"Meri Sapnon Ki Rani"}}}'
p JSON::parse(json_string).class