How do I convert a Hash to a JSON string in Ruby 1.9?
40,273
Solution 1
That's just because of String#inspect
. There are no backslashes. Try:
hjs = hash.to_json
puts hjs
Solution 2
You're on the right track. to_json
converts it to JSON format. Don't let the IRB output fool you -- it doesn't contain any backslashes.
Try this:
puts hash.to_json
and you should see this:
{"hi":"sup","yo":"hey"}
Solution 3
I don't have Ruby1.9 to test, but apparently you are getting the "inspect" view. Those backslashes are not there, they are just escaping the quotes. Run puts hash.to_json
to check.
Author by
ma11hew28
Updated on February 07, 2020Comments
-
ma11hew28 over 4 years
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
puts the answer I want but returnsnil
.hash.to_json
returns the answer I want with backslashes. I don't want backslashes.