복붙노트

[RUBY-ON-RAILS] 어떻게 JSON에 루비 해시 객체를 변환하는?

RUBY-ON-RAILS

어떻게 JSON에 루비 해시 객체를 변환하는?

어떻게 JSON에 루비 해시 객체를 변환하는? 나는 그것이 작동하지 않습니다 및 다음이 예제를 시도하고 그래서?

나는 RubyDoc보고 있었다 분명히 해시 객체는 to_json 방법이 없습니다. 그러나 나는 또한 active_record.to_json 지원 레일 및 블로그에 읽고있다하는 해시 #의 to_json을 지원합니다. 내가 액티브는 레일 목적은 이해할 수 있지만, 해시 레일 네이티브 아니라, 순수한 루비 객체입니다. 그래서 레일에 당신은 hash.to_json을 할 수 있지만 순수 루비 수 있습니까 ??

car = {:make => "bmw", :year => "2003"}
car.to_json

해결법

  1. ==============================

    1.루비의 수많은 미묘한 중 하나는 자신의 방법과 기존의 클래스를 확장 할 수있는 가능성이다. 그는 "클래스 재개"또는 원숭이 패치 (변화 할 수있다 후자의 의미,하지만)라고합니다.

    루비의 수많은 미묘한 중 하나는 자신의 방법과 기존의 클래스를 확장 할 수있는 가능성이다. 그는 "클래스 재개"또는 원숭이 패치 (변화 할 수있다 후자의 의미,하지만)라고합니다.

    그래서, 여기 좀 봐 :

    car = {:make => "bmw", :year => "2003"}
    # => {:make=>"bmw", :year=>"2003"}
    car.to_json
    # NoMethodError: undefined method `to_json' for {:make=>"bmw", :year=>"2003"}:Hash
    #   from (irb):11
    #   from /usr/bin/irb:12:in `<main>'
    require 'json'
    # => true
    car.to_json
    # => "{"make":"bmw","year":"2003"}"
    

    당신이 볼 수 있듯이, JSON을 필요로하는 마술 우리 해시에 방법 to_json을 가져왔다.

  2. ==============================

    2.

    require 'json/ext' # to use the C based extension instead of json/pure
    
    puts {hash: 123}.to_json
    
  3. ==============================

    3.또한 JSON.generate을 사용할 수 있습니다 :

    또한 JSON.generate을 사용할 수 있습니다 :

    require 'json'
    
    JSON.generate({ foo: "bar" })
    => "{\"foo\":\"bar\"}"
    

    또는 별칭, JSON.unparse :

    require 'json'
    
    JSON.unparse({ foo: "bar" })
    => "{\"foo\":\"bar\"}"
    
  4. ==============================

    4.파일의 상단에 다음 줄을 추가

    파일의 상단에 다음 줄을 추가

    require 'json'
    

    그럼 당신은 사용할 수 있습니다 :

    car = {:make => "bmw", :year => "2003"}
    car.to_json
    

    양자 택일로, 당신은 사용할 수 있습니다 :

    JSON.generate({:make => "bmw", :year => "2003"})
    
  5. ==============================

    5.당신은 당신의 파일에 JSON 포함해야한다

    당신은 당신의 파일에 JSON 포함해야한다

    예를 들어,

    require 'json'
    
    your_hash = {one: "1", two: "2"}
    your_hash.to_json
    

    당신은 아래 링크를 방문 할 수 있습니다 JSON에 대한 자세한 지식을하십시오. JSON 학습

  6. from https://stackoverflow.com/questions/3183786/how-to-convert-a-ruby-hash-object-to-json by cc-by-sa and MIT license