我已将字符串化的JSON解析为我服务器上的哈希值。我的问题是一些关键名称(都是字符串)都有反斜杠。我通过替换双斜线来逃脱它们,Ruby似乎没有处理转义,而是当我需要剩下一个时,它会完全删除所有斜线。
这是一个快速的例子,说明了我的目标。
p = '{"blah": {"\\Something\\Else": "meh"}}'
JSON.parse(p)
=> {"blah"=>{"SomethingElse"=>"meh"}}
我需要"别的东西"部分为\Something\Else
,除非它剥去所有斜线。
令人讨厌的是,如果我添加1个斜杠,它将删除该1斜杠。如果我放4个斜杠,它会显示2个斜杠,而我放3个斜线它会显示2个斜杠。似乎不一致。
我在这里做错了什么?
答案 0 :(得分:0)
使用3个反斜杠p = '{"blah": {"\\\Something\\\Else": "meh"}}'
当你做JSON.parse(p)
时
它将显示:=> {"blah"=>{"\\Something\\Else"=>"meh"}}
但它被视为1反斜杠。 这更好地解释了: Why does ruby's JSON parser eat my backslash?