2011-02-06 10 views
23
ruby-1.9.2-p0 > require 'json' 
=> true 
ruby-1.9.2-p0 > hash = {hi: "sup", yo: "hey"} 
=> {:hi=>"sup", :yo=>"hey"} 
ruby-1.9.2-p0 > hash.to_json 
=> "{\"hi\":\"sup\",\"yo\":\"hey\"}" 
ruby-1.9.2-p0 > j hash 
{"hi":"sup","yo":"hey"} 
=> nil 

j hashは答えたいと思いますが、nilを返します。ハッシュをRuby 1.9のJSON文字列に変換するにはどうすればよいですか?

hash.to_jsonは、バックスラッシュで必要な答えを返します。私はバックスラッシュを望んでいません。

+0

どのようなバックスラッシュですか? – Phrogz

+0

質問をSTDOUT&戻り値で更新しました。 – ma11hew28

+0

素敵な、私は存在しませんでした。ハッシュとオブジェクトの書式設定には、yを頻繁に使用します。 –

答えて

34

これはちょうどString#inspectのためです。バックスラッシュはありません。試してください:

hjs = hash.to_json 
puts hjs 
10

あなたは正しい道を歩いています。 to_jsonはJSON形式に変換されます。 IRBの出力にあなたをだましてはいけません。バックスラッシュは含まれていません。 puts hash.to_json を、あなたはこれを見るべきである:

これを試してみてください {"hi":"sup","yo":"hey"}

5

は、私がテストしRuby1.9を持っていないが、どうやらあなたは「点検」のビューを取得しています。それらのバックスラッシュはそこにはなく、引用符をエスケープしています。確認のためにputs hash.to_jsonを実行してください。

関連する問題