JSON

 先日、JSONを扱う機会がありました。 復習も兼ねて定義及びRubyのコード例を元に頭の整理をしていきます。

JSONとは

まず、恒例の「定義通り」の説明をします。 JSONとはJavaScript Object Notationの略です。 テキストベースのデータフォーマットで 多くのプログラム言語でカバーされているため、 ブラウザ(JS)−サーバー(PHPPythonなど)間でのデータ交換において 使われ、記述が容易(後述)なのでメジャーなデータ・フォーマットです。

表記方法

方法は2つあります。

1つ目が「配列型」 JSON例①

["python", "Ruby", "HTML"]

2つ目が「オブジェクト型」 JSON例②

{"gsacademy":"プログラミング学校","プログラミング経験": "ruby"}

またオブジェクト型の中に配列を入れ子にするとことも出来ます。 ここでは紹介しませんが逆も行えます。ここでは「入れ子型」 とでも名づけておきます。

JSON例③ 「入れ子型」

{"gsacademy":"プログラミング学校","学生番号":"18",
"プログラム経験":[{"Ruby":"1ヶ月"},{"Python":"3ヶ月"}]} 

JSONに入れられる値の型はboolean,string,number等が入るので特に意識せず使えそうです。

使用方法

 一般的なサーバー言語ではJSONフォーマットのまま、使用  出来ないため、一回各言語のフォーマット形式に合わせた配列、連想配列へ変換して使用します。

JSON

JSONデータをRuby用に変換(パースと呼ぶ)を行うには JSONモジュールにある parse (もしくは load ) を用います。

require 'json'
 
data_json = 
'{"gsacademy":"プログラミング学校","プログラム経験":"ruby"}' #オブジェクト型

data_json2 = 
'["gsacademy","学生番号","プログラム経験","ruby"]'  #配列型

#入れ子型
data_json3 = 
'{"gsacademy":"プログラミング学校","学生番号":"18",
"プログラム経験":[{"Ruby":"1ヶ月"},{"Python":"3ヶ月"}],
"好きなFW":[{"Ruby":"SinatraとRailsしか知りません。。。"},{"Javascript":"riot"}]}' 

print data1["gsacademy"].to_s + "\n"  #出力->プログラミング学校
print data2[3] + "\n"             #出力->ruby
print data3["好きなFW"][0]["Ruby"] #出力-> SinatraとRailsしか知りません。。。

Python

ptyhonの例は以下となります。

宗定先生

Pythonも勉強しよー

では。