У меня есть строка, которую я хочу проанализировать в Ruby:
string = '{"desc":{"someKey":"someValue","anotherKey":"value"},"main_item":{"stats":{"a":8,"b":12,"c":10}}}'
Есть ли простой способ извлечения данных?
У меня есть строка, которую я хочу проанализировать в Ruby:
string = '{"desc":{"someKey":"someValue","anotherKey":"value"},"main_item":{"stats":{"a":8,"b":12,"c":10}}}'
Есть ли простой способ извлечения данных?
Это выглядит как Javascript Object Notation (JSON). Вы можете установить JSON gem для Ruby:
gem install json
Вам понадобится камень в вашем коде:
require 'rubygems'
require 'json'
Затем вы можете проанализировать строку JSON следующим образом:
JSON.parse(string)
Существуют также другие реализации JSON для Ruby:
Просто чтобы немного расширить ответы на вопрос о том, что делать с анализируемым объектом:
# 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
Как и Ruby v1.9.3, вам не нужно устанавливать какие-либо Gems для анализа JSON, просто используйте require 'json'
:
require 'json'
json = JSON.parse '{"foo":"bar", "ping":"pong"}'
puts json['foo'] # prints "bar"
См. JSON в Ruby-Doc.
Похоже на строку JSON. Вы можете использовать одну из многих библиотек JSON, и это так же просто:
JSON.parse(string)
Это немного поздно, но я столкнулся с чем-то интересным, что, кажется, важно внести свой вклад.
Я случайно написал этот код и, похоже, работает:
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, поэтому нет установки gem.
Я использую версии 1.8.x и 1.9.x - поэтому библиотека json
не встроена, но находится в версии 2.x.
Так технически - это самый простой способ извлечь данные в версии ниже 2.0.
Эти данные выглядят как в формате JSON.
Вы можете использовать эту JSON-реализацию для Ruby, чтобы извлечь ее.
Я предлагаю Oj, поскольку он waaaaaay быстрее, чем стандартная библиотека JSON.