Programing

루비 해시 객체를 JSON으로 변환하는 방법?

lottogame 2020. 3. 9. 08:02
반응형

루비 해시 객체를 JSON으로 변환하는 방법?


루비 해시 객체를 JSON으로 변환하는 방법? 그래서 아래 에서이 예제를 시도하고 있는데 작동하지 않습니까?

RubyDoc을보고 있었고 분명히 Hash객체에는 to_json메소드 가 없습니다 . 하지만 Rails가 지원 active_record.to_json하고 지원하는 블로그를 읽고 있습니다 hash#to_json. ActiveRecordRails 객체 는 이해할 수 있지만 HashRails 고유의 것은 아니며 순수한 Ruby 객체입니다. 그래서 Rails hash.to_json에서는 순수 루비에서는 할 수 없습니다.

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

Ruby의 많은 장점 중 하나는 고유 한 메소드로 기존 클래스를 확장 할 수 있다는 것입니다. 이를 "클래스 다시 열기"또는 원숭이 패치 (후자의 의미 는 다를 수 있음 )라고합니다.

따라서 여기를 살펴보십시오.

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우리 에게 방법 가져 왔습니다 Hash.


require 'json/ext' # to use the C based extension instead of json/pure

puts {hash: 123}.to_json

당신은 또한 사용할 수 있습니다 JSON.generate:

require 'json'

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

또는 별명 JSON.unparse:

require 'json'

JSON.unparse({ foo: "bar" })
=> "{\"foo\":\"bar\"}"

json파일에 포함시켜야 합니다

예를 들어

require 'json'

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

자세한 내용 json은 아래 링크를 방문하십시오. JSON 학습

참고 URL : https://stackoverflow.com/questions/3183786/how-to-convert-a-ruby-hash-object-to-json

반응형