Odpowiedzi:
To wygląda jak JavaScript Object Notation (JSON) . Możesz parsować JSON, który znajduje się w jakiejś zmiennej, np. json_string
Tak:
require 'json'
JSON.parse(json_string)
Jeśli używasz starszego Ruby, może być konieczne zainstalowanie klejnotu json .
Istnieją również inne implementacje JSON dla Ruby, które mogą lepiej pasować do niektórych przypadków użycia:
JSON.parse(string, symbolize_names: true) #=> {key: :value}
require 'json'
w swoim kodzie.
Aby rozszerzyć nieco odpowiedzi o to, co zrobić z analizowanym obiektem:
# 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" }'
jest ważna. "{ 'a': 'bob' }"
nie jest.
JSON.parse
blok ratunkowy dla JSON::ParserError
.
JSON.parse("[#{value}]")[0]
aby uniknąć błęduA JSON text must at least contain two octets!
Jest trochę późno, ale wpadłem na coś interesującego, co wydaje się ważne.
Przypadkowo napisałem ten kod i wydaje się on działać:
require 'yaml'
CONFIG_FILE = ENV['CONFIG_FILE'] # path to a JSON config file
configs = YAML.load_file("#{CONFIG_FILE}")
puts configs['desc']['someKey']
Byłem zaskoczony, widząc, że działa, ponieważ korzystam z biblioteki YAML, ale działa.
Powodem, dla którego jest to ważne, jest to yaml
jest wbudowany w Ruby, więc nie ma instalacji klejnotów.
Używam wersji 1.8.xi 1.9.x - więc json
biblioteka nie jest wbudowana, ale jest w wersji 2.x.
Więc technicznie - jest to najłatwiejszy sposób na wyodrębnienie danych w wersji niższej niż 2.0.
Dane wyglądają tak, jakby były w formacie JSON.
Możesz użyć tej implementacji JSON dla Ruby, aby ją wyodrębnić.
Sugeruję Oj, ponieważ jest on oaaaaay szybszy niż standardowa biblioteka JSON.
require 'json'
w swoim kodzie.