Ruby JSON解析从字符串

时间:2016-12-22 19:27:44

标签: ruby-on-rails json ruby

我已将字符串化的JSON解析为我服务器上的哈希值。我的问题是一些关键名称(都是字符串)都有反斜杠。我通过替换双斜线来逃脱它们,Ruby似乎没有处理转义,而是当我需要剩下一个时,它会完全删除所有斜线。

这是一个快速的例子,说明了我的目标。

p = '{"blah": {"\\Something\\Else": "meh"}}'
JSON.parse(p)
=> {"blah"=>{"SomethingElse"=>"meh"}} 

我需要"别的东西"部分为\Something\Else,除非它剥去所有斜线。

令人讨厌的是,如果我添加1个斜杠,它将删除该1斜杠。如果我放4个斜杠,它会显示2个斜杠,而我放3个斜线它会显示2个斜杠。似乎不一致。

我在这里做错了什么?

1 个答案:

答案 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?