2016-12-22 87 views
1

JSONがサーバー上のハッシュに解析されています。私の問題はキー名の一部(すべての文字列)にバックスラッシュがあることです。私は二重スラッシュで置き換えてそれらをエスケープしました。Rubyがエスケープ処理をしていないように見えるのですが、残っているものが必要なときにスラッシュを完全に削除します。Ruby JSON Parse Strippingエスケープされたバックスラッシュ(ストリング)

Heres私は何を得るのか簡単な例です。

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

それはすべてのアウトスラッシュストリッピングされた以外、私は\Something\Elseする「他の何か」の部分を必要としています。

困ったことに、スラッシュを1つ入れると、そのスラッシュは削除されます。 4つのスラッシュを置くと2つのスラッシュが表示され、3つのスラッシュを入れると2つのスラッシュが表示されます。矛盾しているようだ。

私はここで間違っていますか?

答えて

0

使用3バックスラッシュはp = '{"blah": {"\\\Something\\\Else": "meh"}}' あなたが行うと、それが表示されますJSON.parse(p)=> {"blah"=>{"\\Something\\Else"=>"meh"}}

が、それは1つのバックスラッシュとして扱われます。 これはそれをよりよく説明します: Why does ruby's JSON parser eat my backslash?

関連する問題