Answers:
看起来像JavaScript Object Notation(JSON)。您可以解析驻留在某个变量(例如)中的JSON json_string
,如下所示:
require 'json'
JSON.parse(json_string)
如果您使用的是较旧的Ruby,则可能需要安装json gem。
还有其他针对JSON的JSON实现,可能更适合某些用例:
JSON.parse(string, symbolize_names: true) #=> {key: :value}
require 'json'
在您的代码中使用即可。
只是为了扩大答案与解析对象的关系:
# 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" }'
有效。"{ 'a': 'bob' }"
不是。
JSON.parse
在的救援块中JSON::ParserError
。
JSON.parse("[#{value}]")[0]
为了避免错误A JSON text must at least contain two octets!
这有点晚了,但我碰到了一些有趣的事情,似乎很重要。
我不小心写了这段代码,它似乎可以工作:
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来提取它。
require 'json'
在您的代码中使用即可。