반응형
JSON을 루비 해시로 변환
다음 값을 보유하는 JSON 객체가 있습니다.
@value = {"val":"test","val1":"test1","val2":"test2"}
키 값 쌍을 얻기 위해 Ruby에서 루핑하고 싶습니다. 을 사용할 때 @each
루비 해시 형식이 아니기 때문에 객체를 반복하지 않습니다.
@value = {"val"=>"test","val1"=>"test1","val2"=>"test2"}
위의 JSON 객체를 Ruby 해시로 변환하려면 어떻게해야합니까?
다음 스 니펫은 어떻습니까?
require 'json'
value = '{"val":"test","val1":"test1","val2":"test2"}'
puts JSON.parse(value) # => {"val"=>"test","val1"=>"test1","val2"=>"test2"}
with_indifferent_access와 같이 rails의 메소드를 사용할 수 있으므로 기호 또는 문자열로 본문에 액세스 할 수 있습니다.
value = '{"val":"test","val1":"test1","val2":"test2"}'
json = JSON.parse(value).with_indifferent_access
그때
json[:val] #=> "test"
json["val"] #=> "test"
어딘가에 JSON 해시가 걸려 있다고 가정하면이를 자동으로 WarHog 버전과 같은 것으로 변환하려면 json 해시 내용을 % q {hsh} 태그로 감싸십시오. 이것은 WarHog의 답변과 같이 필요한 이스케이프 된 텍스트를 모두 자동으로 추가하는 것 같습니다
당신이 시도 유무 : http://flori.github.com/json/를 .
실패하면 그냥 파싱 할 수 있습니까? 관심있는 배열이라면 위의 내용을 분리하는 것이 매우 간단합니다. 엔
nice_hash gem을 사용할 수 있습니다 : https://github.com/MarioRuiz/nice_hash
require 'nice_hash'
my_string = '{"val":"test","val1":"test1","val2":"test2"}'
# on my_hash will have the json as a hash, even when nested with arrays
my_hash = my_string.json
# you can filter and get what you want even when nested with arrays
vals = my_string.json(:val1, :val2)
# even you can access the keys like this:
puts my_hash._val1
puts my_hash.val1
puts my_hash[:val1]
참고 URL : https://stackoverflow.com/questions/7964282/convert-json-to-ruby-hash
반응형
'Programming' 카테고리의 다른 글
ASP.NET MVC의 EditorFor ()에 대한 HTML 특성 (0) | 2020.07.04 |
---|---|
OS X에서 sed를 사용한 전체 편집 (0) | 2020.07.04 |
루트 응용 프로그램을 변경하는 방법? (0) | 2020.07.03 |
올바른 개수의 인수 확인 (0) | 2020.07.03 |
Greenlet Vs. (0) | 2020.07.03 |