답변:
이것은 JSON (JavaScript Object Notation) 처럼 보입니다 . 다음 json_string
과 같이 변수에 상주하는 JSON을 구문 분석 할 수 있습니다 .
require 'json'
JSON.parse(json_string)
이전 Ruby를 사용하는 경우 json gem 을 설치해야 할 수 있습니다 .
유스 케이스에 더 잘 맞는 다른 Ruby 용 JSON 구현도 있습니다.
JSON.parse(string, symbolize_names: true) #=> {key: :value}
require 'json'
코드에서 간단히 사용 하십시오.
구문 분석 된 객체로 수행 할 작업으로 답변을 약간 확장하려면
# JSON Parsing example
require "rubygems" # don't need this if you're Ruby v1.9.3 or higher
require "json"
string = '{"desc":{"someKey":"someValue","anotherKey":"value"},"main_item":{"stats":{"a":8,"b":12,"c":10}}}'
parsed = JSON.parse(string) # returns a hash
p parsed["desc"]["someKey"]
p parsed["main_item"]["stats"]["a"]
# Read JSON from a file, iterate over objects
file = open("shops.json")
json = file.read
parsed = JSON.parse(json)
parsed["shop"].each do |shop|
p shop["id"]
end
'{ "a": "bob" }'
유효합니다. "{ 'a': 'bob' }"
아니다.
JSON.parse
대한 구조 블록 내 에서 래핑하려고합니다 JSON::ParserError
.
JSON.parse("[#{value}]")[0]
오류를 피하기 위해A JSON text must at least contain two octets!
이것은 조금 늦었지만 기여하는 것이 중요해 보이는 흥미로운 것을 발견했습니다.
실수 로이 코드를 작성했으며 작동하는 것 같습니다.
require 'yaml'
CONFIG_FILE = ENV['CONFIG_FILE'] # path to a JSON config file
configs = YAML.load_file("#{CONFIG_FILE}")
puts configs['desc']['someKey']
YAML 라이브러리를 사용하고 있기 때문에 작동하는 것을보고 놀랐지 만 작동합니다.
중요한 이유는 yaml
Ruby에 내장되어 있기 때문에 gem 설치가 없기 때문입니다.
1.8.x 및 1.9.x 버전을 사용하고 있으므로 json
라이브러리가 내장되어 있지 않지만 버전 2.x에 있습니다.
기술적으로 이것은 2.0보다 낮은 버전의 데이터를 추출하는 가장 쉬운 방법입니다.
require 'json'
코드에서 간단히 사용 하십시오.