2011-02-06 11 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 stawia odpowiedź chcę, ale zwraca nil.Jak przekonwertować hasz na ciąg JSON w Rubim 1.9?

hash.to_json zwraca odpowiedź, którą chcę, stosując ukośniki odwrotne. Nie chcę ukośników.

+0

Jakie ukośniki? – Phrogz

+0

Zaktualizowałem pytanie z wartościami STDOUT i zwracanymi. – ma11hew28

+0

Cudownie, ja nie istniałem. Często używamy y do formatowania hashe i obiektów. –

Odpowiedz

34

To tylko z powodu String#inspect. Nie ma odwrotnych ukośników. Wypróbuj:

hjs = hash.to_json 
puts hjs 
10

Jesteś na dobrej drodze. to_json konwertuje go do formatu JSON. Nie pozwól, aby wyjście IRB cię zmykało - nie zawiera żadnych ukośników odwrotnych.

Spróbuj tego: puts hash.to_json i powinieneś zobaczyć to: {"hi":"sup","yo":"hey"}

5

nie mam Ruby1.9 przetestować, ale najwyraźniej są coraz pogląd "wglądu". Nie ma tam odwrotnych ukośników, po prostu uciekają z cytatów. Uruchom puts hash.to_json, aby sprawdzić.

Powiązane problemy