やりたいこと
HTTPリクエストをしてJSONが返る外部APIをRubyで使いたい。
JSONからRubyで使えるハッシュを取得したい。
# 結論
#各種ライブラリを読み込む
require 'net/http'
require 'json'
require 'uri'
#uriライブラリ>URIモジュール
#該当するインスタンスを生成して返す
uri = URI.parse('http://hoge.com')
# => #<URI::HTTP http://hoge.com>
#net/httpライブラリ>Net::HTTPクラス
#URL先にGETリクエストを送り、そのボディを"文字列"として返す。
json = Net::HTTP.get(uri)
#josonライブラリ>JSONモジュール
#取得したJSON形式の文字列を、Rubyオブジェクトに変換して返す
JSON.parse(json)
以上で、URLにGETリクエストを送り、JSON形式のデータをRubyで使えるハッシュを取得できる。
公式リファレンス
URIモジュール
Net::HTTPクラス
JSONモジュール
JSONとは
JavaScript Object Notation(JSON、ジェイソン)はデータ記述言語の1つである。軽量なテキストベースのデータ交換用フォーマットでありプログラミング言語を問わず利用できる[1]。名称と構文はJavaScriptにおけるオブジェクトの表記法に由来する。
https://ja.wikipedia.org/wiki/JavaScript_Object_Notation
JavaScript だけではなく、Java, PHP, Ruby, Python など、様々な言語間のデータ交換、特に Ajax や REST API などで使用されています。
これまでは、共通データ定義言語として XML が利用されてきましたが、現在では、簡易的な JSON が利用されるケースが増えてきています。
http://www.tohoho-web.com/ex/json.html
異なる言語間でデータをやり取りするための記述形式で、記法はJavaScriptに由来する。
以前は、データをやり取りする時はXMLが使われおり、今はJSONが主流となっている。
###JSONのルール
キーと値にコロンがつく。
文字列は""
ダブルクォーテーションで囲む。
{ "hoge": "fuga" }
シングルクォーテーションは使用できない。
❌{ 'hoge': 'fuga' }
カンマを使うことで、複数のキーと値を指定することができる
{ "hoge": "fuga", "foo": 123 }
配列や値のみでもOK!
["hoge","fuga"] "hoge" 123
#まとめ
APIからJSONを取得し、Rubyで使うやり方とJSONについて、簡単にまとめました。