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