Відповіді:
Це виглядає як JavaScript Object Notation (JSON) . Ви можете проаналізувати JSON, який знаходиться в якійсь змінній, наприклад json_string
, так:
require 'json'
JSON.parse(json_string)
Якщо ви використовуєте більш старий Ruby, можливо, вам доведеться встановити дорогоцінний камінь json .
Існують також інші реалізації JSON для Ruby, які можуть краще відповідати деяким випадкам використання:
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, щоб не встановити дорогоцінний камінь.
Я використовую версії 1.8.x та 1.9.x - тому json
бібліотека не вбудована, але вона є у версії 2.x.
Тож технічно - це найпростіший спосіб вилучення даних у версії нижче 2.0.
Ці дані виглядають так, як вони є у форматі JSON.
Ви можете використовувати цю реалізацію JSON для Ruby для її вилучення.
Я пропоную Oj, оскільки це waaaaaay швидше, ніж стандартна бібліотека JSON.
require 'json'
у своєму коді.