2013-05-01 3 views
-1

내가 입력 한 경우 :루비에서 JSON을 반환하는 방법은 무엇입니까? 레일 콘솔에서

User.all.to_json 

를 내가 반환 된 다음 얻는다.

"[{\"created_at\":\"2013-04-29T23:10:36Z\",\"email\":\"[email protected]\",\"id\":2,\"updated_at\":\"2013-04-29T23:10:36Z\"},{\"created_at\":\"2013-03-18T04:53:42Z\",\"email\":\"[email protected]\",\"id\":1,\"updated_at\":\"2013-05-01T12:03:01Z\"}]" 

복사/http://jsonviewer.stack.hu/이 붙여 JSON으로 볼 때, 나는 오류가 '잘못된 JSON이 변수'말을 얻는다. 나는 이것이 '\'문자 때문이라고 생각한다. 이 문제를 해결하는 방법에 대한 조언이 필요하십니까?

+0

'User.all'는'to_json'없이 무엇입니까? –

+1

콘솔에서 그렇게한다면, 출력에는 여러 개의 따옴표와 백 슬래시가 들어있는 "정상적인"것이고, 콘솔에'puts User.all.to_json'을 시도하십시오. – MrYoshiji

+0

@MrYoshiji 답을 쓰시겠습니까? 받아 들일 것입니까? – sharataka

답변

0

콘솔에서 그렇게하면 출력에 여러 개의 따옴표와 백 슬래시가 포함 된 것이 "정상적인"현상입니다. 내 IRB 콘솔에서

:

irb(main):009:0> Patient.first.to_json 
#=> "{\"patient\":{\"created_at\":\"2013-03-14T16:53:52-04:00\",\"id\":6538,\"updated_at\":\"2013-03-14T16:53:52-04:00\"}}" 

그러나 방법 puts 사용 :

irb(main):010:0> puts Patient.first.to_json 
{"patient":{"created_at":"2013-03-14T16:53:52-04:00","id":6538,"updated_at":"2013-03-14T16:53:52-04:00"}} 
#=> nil 
2
  • to_json 등 탈출 따옴표 실제 JSON과 같은
  • as_json 반환을 가진 JSON 문자열을 반환이 제대로 검증 할 것입니다.

사용하는 방법은 렌더링 방식에 따라 다릅니다.

+0

as_json을 사용해 보았습니다 만, 이제는 '=>'을 사용하고 있으며 유효한 JSON 변수가 아니라는 동일한 오류가 발생합니다. – sharataka

+0

@sharataka 제가 말했듯이, 그것은 당신이 그것을 어떻게 렌더링하고 있는가에 달려 있습니다. to_json은'puts '를 사용하거나 브라우저에 문자열로 보내면 괜찮습니다. 일반 Rails JSON 렌더링을 사용하는 경우'as_json'을 사용합니다. –

관련 문제