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



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

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

已经在 SO 中了。

警告安全风险!

对于您的字符串,您需要传递给eval,但这是一个安全风险

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

如果您需要将数据结构存储在文件中,我建议您查看 YAML 模块。例如,看看这篇文章。

正如评论中所建议的:

  • 还要考虑安全问题,看看这篇文章。
  • 考虑稍微更改字符串语法以使用 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

最新更新