J'ai une chaîne que je veux analyser en ruby.
string = '{"desc":{"someKey":"someValue","anotherKey":"value"},"main_item":{"stats":{"a":8,"b":12,"c":10}}}'
Est-il un moyen facile pour extraire les données?
J'ai une chaîne que je veux analyser en ruby.
string = '{"desc":{"someKey":"someValue","anotherKey":"value"},"main_item":{"stats":{"a":8,"b":12,"c":10}}}'
Est-il un moyen facile pour extraire les données?
Cela ressemble à du Javascript Object Notation (JSON). Vous pouvez installer le json gem Ruby:
gem install json
Vous auriez besoin de la gemme dans votre code comme ceci:
require 'rubygems'
require 'json'
Ensuite, vous pouvez analyser votre chaîne JSON comme ceci:
JSON.parse(string)
Il y a aussi d'autres implémentations de JSON pour Ruby:
Juste pour prolonger les réponses ci-dessus un peu avec ce qu'il faut faire avec l'analyse de l'objet:
# JSON Parsing example
require "rubygems"
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
un peu en retard, mais je suis tombé sur quelque chose d'intéressant qui me semble importante à apporter.
Par accident, j'ai écrit ce code, et il semble fonctionner..
require 'yaml'
CONFIG_FILE = ENV['CONFIG_FILE'] # path to a JSON config file
configs = YAML.load_file("#{CONFIG_FILE}")
puts configs['desc']['someKey']
J'ai été surpris de voir qu'il travaille depuis que je suis en utilisant le yaml bibliothèque, mais il fonctionne.
La raison pour laquelle il est important, c'est qu' yaml
est intégré dans avec ruby - pas de gem install.
Je suis à l'aide de versions 1.8.x et 1.9.x - so json
bibliothèque n'est pas intégré, mais il est en version 2.x.
Donc techniquement c'est le moyen le plus facile pour extraire les données dans la version antérieure à 2.0.
Que les données dirait qu'il est au format JSON.
Vous pouvez utiliser cette JSON mise en œuvre de Ruby pour l'extraire.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.