2011-02-06 100 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 2011-02-06 22:25:34

回答

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进行检查。

相关问题