Risposte:
Questo sembra JavaScript Object Notation (JSON) . È possibile analizzare JSON che risiede in alcune variabili, ad json_string
esempio in questo modo:
require 'json'
JSON.parse(json_string)
Se stai usando un Ruby più vecchio, potrebbe essere necessario installare la gemma JSON .
Esistono anche altre implementazioni di JSON per Ruby che potrebbero adattarsi meglio ad alcuni casi d'uso:
JSON.parse(string, symbolize_names: true) #=> {key: :value}
require 'json'
nel tuo codice.
Solo per estendere un po 'le risposte con cosa fare con l'oggetto analizzato:
# 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" }'
è valido. "{ 'a': 'bob' }"
non è.
JSON.parse
in un blocco di salvataggio per JSON::ParserError
.
JSON.parse("[#{value}]")[0]
per evitare l'erroreA JSON text must at least contain two octets!
È un po 'tardi, ma mi sono imbattuto in qualcosa di interessante che sembra importante contribuire.
Ho scritto per errore questo codice e sembra funzionare:
require 'yaml'
CONFIG_FILE = ENV['CONFIG_FILE'] # path to a JSON config file
configs = YAML.load_file("#{CONFIG_FILE}")
puts configs['desc']['someKey']
Sono stato sorpreso di vedere che funziona dal momento che sto usando la libreria YAML, ma funziona.
Il motivo per cui è importante è che yaml
è integrato con Ruby, quindi non c'è installazione gemma.
Sto usando le versioni 1.8.xe 1.9.x - quindi la json
libreria non è integrata, ma è nella versione 2.x.
Quindi tecnicamente: questo è il modo più semplice per estrarre i dati nella versione precedente alla 2.0.
I dati sembrano essere in formato JSON.
È possibile utilizzare questa implementazione JSON per Ruby per estrarla.
Suggerisco Oj perché è molto più veloce della libreria JSON standard.
require 'json'
nel tuo codice.