Ruby 为什么json.parse在前面插入反斜杠#
我有一个JSON文件,如下所示:Ruby 为什么json.parse在前面插入反斜杠#,ruby,json,Ruby,Json,我有一个JSON文件,如下所示: [ {"testid" : 1, "desc" : "with valid email", "rescode" : 200, "request" : {"my_user" : {"email" : "#{$user.email}", "password" : "abcde"}, "source" : "android"}}, {"testid" : 2, "desc" : "with valid phone", "rescode" : 200
[
{"testid" : 1, "desc" : "with valid email", "rescode" : 200, "request" : {"my_user" : {"email" : "#{$user.email}", "password" : "abcde"}, "source" : "android"}},
{"testid" : 2, "desc" : "with valid phone", "rescode" : 200, "request" : {"my_user" : {"phone" : "#{$user.phone}", "password" : "abcde"}, "source" : "android"}}
]
现在,当我尝试使用JSON.parse()
解析此JSON以获取哈希时,我得到的内容在
前面有一个反斜杠,如下所示:
{"housing_user"=>{"email"=>"\\#{$user.email}", "password"=>"abcde"}, "source"=>"android"}
它阻止我使用$user.email
的值,而是使用了\\\\\{$user.email}
如何防止这种情况发生?语法结构
{}
在Ruby中保留,用于字符串插值。因此,JSON.parse
只需转义#
符号即可防止字符串插入。JSON.parse()
不会添加反斜杠,Ruby会在使用显示时添加反斜杠。出于@bronislav提到的原因,请检查(例如在irb中)。事实上,它看起来像“\\{$user.email}”
,我不能得到双反斜杠。@VictorMoroz,你说得对。这肯定是.inspect
@VictorMoroz:是的,我得到\{$user.email},双反斜杠错误地进入了问题。那么,有没有一种方法可以让我在解析jason后得到我的hasmap,作为{“我的用户”=>{“email”=>“{$user.email}”,“密码”=>“abcde”},“源”=>“安卓”}