Как мне преобразовать хэш в строку JSON в Ruby 1.9? - PullRequest
27 голосов
/ 07 февраля 2011
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.

hash.to_json возвращает требуемый ответ с обратной косой чертой.Я не хочу обратной косой черты.

Ответы [ 3 ]

46 голосов
/ 07 февраля 2011

Это только из-за String#inspect. Там нет обратной косой черты. Попробуйте:

hjs = hash.to_json
puts hjs
13 голосов
/ 07 февраля 2011

Вы на правильном пути.to_json преобразует его в формат JSON.Не позволяйте выводу IRB одурачить вас - он не содержит никаких обратных наклонных черт.

5 голосов
/ 07 февраля 2011

У меня нет Ruby1.9 для тестирования, но, видимо, вы получаете представление "осмотреть". Эти обратные слеши не там, они просто избегают кавычек. Запустите puts hash.to_json для проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...