回答:
これはJavaScript Object Notation(JSON)のように見えます。次のjson_string
ように、変数に存在するJSONを解析できます。
require 'json'
JSON.parse(json_string)
古いRubyを使用している場合は、json gemのインストールが必要になる場合があります。
Rubyの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より前のバージョンのデータを抽出する最も簡単な方法です。
require 'json'
コードで使用するだけです。