2011-02-06 3 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

Wonderful, 나는 존재하지 않았다. 해시와 객체의 서식을 지정하기 위해 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을 실행하십시오.

관련 문제