我想解析Rails production.log文件并重新创建params Hash。我坚持使用Marshal.load方法,它实际上期望数据被编组。好吧,数据格式正确,但它是一个字符串,而不是Marshal预期的格式。
这是我从日志文件中请求退出的字符串:
{
"location"=>{"city"=>"München \"foo \" bar", "id"=>"462", "youtube_tags"=>""},
"authenticity_token"=>"UHi0GCNDBPN/Ms+0bqEOl4HGvUjDRw8tNvtqVl3v0dY=",
"utf8"=>"\342\234\223", "textinput"=>""
}
我用
解决了这个问题o=JSON.parse.gsub("=>",":"))
在这种情况下,我遇到了变音符号的问题。
是否无法使用Ruby 1.8.7将字符串中的哈希表示形式解析或加载到实际的Ruby Hash结构中?
答案 0 :(得分:1)
这可能不是最好的方法,但是......
h = eval '{
"location"=>{"city"=>"München", "id"=>"462", "youtube_tags"=>""},
"authenticity_token"=>"UHi0GCNDBPN/Ms+0bqEOl4HGvUjDRw8tNvtqVl3v0dY=",
"utf8"=>"\342\234\223", "textinput"=>""
}'