Antworten:
Dies sieht aus wie JavaScript Object Notation (JSON) . Sie können JSON analysieren, das sich in einer Variablen befindet, z. B json_string
.:
require 'json'
JSON.parse(json_string)
Wenn Sie einen älteren Ruby verwenden, müssen Sie möglicherweise den json gem installieren .
Es gibt auch andere Implementierungen von JSON für Ruby, die möglicherweise besser zu einigen Anwendungsfällen passen:
JSON.parse(string, symbolize_names: true) #=> {key: :value}
require 'json'
Sie einfach in Ihrem Code.
Nur um die Antworten ein wenig zu erweitern, was mit dem analysierten Objekt zu tun ist:
# 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" }'
ist gültig. "{ 'a': 'bob' }"
ist nicht.
JSON.parse
in einen Rettungsblock für einwickeln JSON::ParserError
.
JSON.parse("[#{value}]")[0]
um den Fehler zu vermeidenA JSON text must at least contain two octets!
Das ist etwas spät, aber ich bin auf etwas Interessantes gestoßen, das wichtig zu sein scheint.
Ich habe diesen Code versehentlich geschrieben und er scheint zu funktionieren:
require 'yaml'
CONFIG_FILE = ENV['CONFIG_FILE'] # path to a JSON config file
configs = YAML.load_file("#{CONFIG_FILE}")
puts configs['desc']['someKey']
Ich war überrascht zu sehen, dass es funktioniert, da ich die YAML-Bibliothek verwende, aber es funktioniert.
Der Grund, warum es wichtig ist, ist, dass yaml
Ruby integriert ist, sodass es keine Edelsteininstallation gibt.
Ich verwende die Versionen 1.8.x und 1.9.x - die json
Bibliothek ist also nicht integriert, aber in Version 2.x.
Technisch gesehen ist dies der einfachste Weg, um die Daten in einer Version unter 2.0 zu extrahieren.
Diese Daten scheinen im JSON-Format zu sein.
Sie können diese JSON-Implementierung für Ruby verwenden , um sie zu extrahieren.
Ich schlage Oj vor, da es schneller als die Standard-JSON-Bibliothek ist.
require 'json'
Sie einfach in Ihrem Code.