Respostas:
Isso se parece com JavaScript Object Notation (JSON) . Você pode analisar o JSON que reside em alguma variável, por exemplo json_string
:
require 'json'
JSON.parse(json_string)
Se você estiver usando um Ruby antigo, pode ser necessário instalar o json gem .
Também há outras implementações do JSON para Ruby que podem se encaixar melhor em alguns casos de uso:
JSON.parse(string, symbolize_names: true) #=> {key: :value}
require 'json'
no seu código.
Apenas para estender um pouco as respostas sobre o que fazer com o objeto analisado:
# 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" }'
é válido. "{ 'a': 'bob' }"
não é.
JSON.parse
dentro de um bloco de resgate JSON::ParserError
.
JSON.parse("[#{value}]")[0]
para evitar o erroA JSON text must at least contain two octets!
É um pouco tarde, mas encontrei algo interessante que parece importante para contribuir.
Eu acidentalmente escrevi esse código e parece funcionar:
require 'yaml'
CONFIG_FILE = ENV['CONFIG_FILE'] # path to a JSON config file
configs = YAML.load_file("#{CONFIG_FILE}")
puts configs['desc']['someKey']
Fiquei surpreso ao ver que funciona, pois estou usando a biblioteca YAML, mas funciona.
A razão pela qual é importante é que ele yaml
vem embutido no Ruby, portanto não há instalação de gemas.
Estou usando as versões 1.8.xe 1.9.x - portanto, a json
biblioteca não está incorporada, mas está na versão 2.x.
Portanto, tecnicamente - esta é a maneira mais fácil de extrair os dados na versão menor que 2.0.
Esses dados parecem estar no formato JSON.
Você pode usar esta implementação JSON para Ruby para extraí-la.
Eu sugiro Oj, pois é muito mais rápido que a biblioteca JSON padrão.
require 'json'
no seu código.