プログラミングでデータを扱う上で必ずといってもいいほど出てくるのが「JSON」です。
プログラミングを始めた方でJSONという言葉を聞き始めて、どんなものか気になる方がこちらの記事を見ていると思いますが、初心者の方やJSONの詳細を知りたい方にわかりやすくご紹介していきます。
JSONとは
JSONとは、「JavaScript Object Notation」の略称で、JavaScriptのオブジェクト記法を用いたデータ交換フォーマットになります。
これだけではわかりづらいかと思いますが、JSONは各プログラミング間でデータの受け渡しをする際によく使われており、非常に軽量なデータ形式となるため、負荷がかからずにデータの受け渡しをすることが一番のメリットとして多くのエンジニアが利用しています。
名称を見るとJavaScriptというプログラミング言語だけでしか使用できないかと思われがちですが、JavaScript以外にもPHPやPython、Javaなど多くのプログラミング言語で使用されているため、様々な場面のデータ受け渡しの形式にはJSONが使われていると思ってください。
ちなみにデータ形式にはJSON以外にもいくつかあるため、あくまでデータを記述する形式の1つとなります。
JSONの歴史を記述する
JSONは、JavaScriptのオブジェクトリテラル表記に基づいており、2002年にダグラス・クロックフォードによって開発されました。
JSONが開発されるまではXMLが主流となっていました。XMLは非常に柔軟ですが、構文が複雑で読み書きが煩雑であり、大量の冗長なデータを含む場合には容量が大きくなりがちです。しかしJSONは、データ量を削減し、構文が簡単で扱いやすいため広まっていきました。
現在では多くのWebアプリケーションで使用されており、APIなどの外部とのデータ連携でもよく使われています。
JSONの読み方
JSONは「JavaScript Object Notation」の略称とお伝えしましたが、そもそも読み方がわからないという人もいます。
JSONは「ジェイソン」と発音します。ジェイソンと聞くと、ホラー映画13日の金曜日のジェイソン・ボーヒーズを連想しますよね。
私はJSONと初めて聞いた時には、まさしくこの13日の金曜日のジェイソンを思い浮かべました。子供時代にみた映画で最も怖かった印象があります・・・。
またジェイソンと聞くと、プログラミング言語のPython(パイソン)と発音が似ていることから、Pythonで使用する何か?と思う方もいますが、関係ありません。もちろんPythonでもデータの受け渡しにJSONを使用することが多いのですが、名称の由来とは全く関係ありません。
エンジニアの方がJSON(ジェイソン)と言っていたら、13日の金曜日のジェイソンでもないですし、Python関係でもないということを頭に入れておいてください。
そもそもデータとは
データとは情報の意味で、情報とはコンピューターで使うデジタル情報になります。
データには、基本データ型と複合データ型の2種類あります。
基本データ型とはプリミティブ型とも呼ばれることがありますが、プログラミングで扱う基本的な型で整数(int型)や少数(float型)、文字(char型)、真偽値(boolean型)などがあります。
複合データ型とは、参照型とも呼ばれることがありますが、いくつかの基本データ型が集まって作られており、配列型や文字列型、クラス・構造体、連想配列などがあります。複数のデータをまとめて使うことでプログラミングをより便利にすることができるものです。
より詳細に説明すると、データは大きく2種類(言語定義型・ユーザー定義型)に分けられます。言語定義型には「整数・小数・文字列・配列」で、ユーザー定義型には「クラス・構造体」に分類できます。
本題からは逸れてしまいましたが、データには色々な型があるということを覚えておいてください。
JSONの形式
JSONはデータを受け渡すフォーマット(形式)のことだと理解できましたが、実際にJSONがどのようなものか形式を見ていきましょう。
例えば、あなたが会社を経営していて、社員の管理をしている場合を想像してください。
この時に社員の「社員ID・名前・年齢・身長・体重・生年月日・住所・年収」の項目をデータベースに保管しているとします。この社員データをJSON形式で表すと以下となります。
{
"ID":1,
"name":"菅田将暉",
"age":29,
"height":176,
"weight":66,
"birthday":"1993/2/21",
"address":"東京都港区1-1-1",
"income":"1000万円"
}
パッと見では難しく感じるかもしれませんが、「ID=1、name(名前)=菅田将暉、age(年齢)=29」のように捉えていただければとても簡単です。このようにデータをJSONという形式(ルール)で記述してあるだけですので、全く難しくありません。
最初は真似して書いてみると覚えやすいですし、迷った時はググればすぐにわかるので、自分が入れたい情報をわかりやすくしてあげれば問題ありません。
JSONのメリット4つ
JSONには他のデータ形式と比較してメリットとなる点が4つあります。
- データが軽い
- 構造が分かりやすい
- 記述が簡単で習得しやすい
- JavaScriptとの相性がいい
それではそれぞれJSONの特徴を詳しく説明していきます。
メリット①:データが軽い
JSONはXMLと比較して記述量が少ないためデータ容量が軽くなります。それにより高速な通信が可能となり、読み込み速度も速くなります。
XMLはHTMLに似たタグで値を囲っているので、同じ内容のファイルでも、テキスト量が増え容量も大きくなってしまいます。またCSVはテキスト量は少なく済みますが、複雑な構造のデータを管理する場合には不向きです。
メリット②:構造が分かりやすい
JSONはキーと値をペアにして記述するため、人間にとって非常に読みやすい構造です。階層が深くなっても、1つの組み合わせはカッコで区切られているので、構造が追いやすくなっています。
同じグループのデータは配列で管理されており、項目の追加・削除が簡単に行えます。
メリット③:記述が簡単で習得しやすい
また構造がわかりやすいので、記述が簡単で習得しやすいというメリットにも繋がります。
プログラミング言語ほど学習コストは高くないので、アプリを開発する延長線上で習得が可能です。
ただしプログラミングと同じく記述ミスがあるとエラーが発生するので注意が必要です。
メリット④:JavaScriptとの相性がいい
JSONは元々JavaScriptでデータを扱うために設計された規格です。そのため、JavaScriptとの相性がよく、アプリ開発で日常的に使用されています。
以前はXML形式の通信がメインでした。しかし、データを変換してから使用する必要があり、余計な手間やコードが複雑化するなどのデメリットがありました。
しかし、JSONは変換する必要なく、そのままデータを利用することができるので、サーバーとのやり取りがスムーズに行われるようになりました。
JSONとCSV・XMLとの違い
JSONは今や主流ですが、CSV・XMLも以前までは多くで利用されていました。もちろんいまだにCSV・XMLも使用されるケースは多いですが、JSONが主流であることは間違いないでしょう。
CSVの記述の方法
CSVは「Comma-Separeted Values」の略で、1つ1つのデータがコンマで区切られています。
最上部にテーブルの項目名があり、1列ごとにレコードの情報がまとめられています。
テキストエディタで確認すると対応する項目がわかりづらくなりますが、Excelやスプレッドシートなどの表計算ソフトで開くとデータがセルごとに表示されるので、直感的に把握しやすい形式です。
しかし、特定のレコードのみに新しく項目を追加することは困難なため、複雑なデータ構造を作ることには向いていません。
XMLの記述の方法
XMLは「Extensible Markup Language」の略で、HTMLなどと同じくマークアップ言語の1種になります。1つ1つの要素をタグと呼ばれるものによって囲まれ、入れ子構造でデータを管理できます。
データを格納するためには開始タグと終了タグで囲います。終了タグには「/」(スラッシュ)が必要なので注意です。
人が見るには直感的に理解しづらいですが、CSVと比較して複雑なデータ構造も作成できます。
JSONの利用例3選
JSONは主にプログラミング言語を利用して、アプリ開発のときに使用されています。
JSONの登場により、CSVやXMLでは困難だったデータやり取りの方法が可能になりました。
サーバーとのデータ通信
Webサイトのアプリケーションを動かすときに、必要なデータをサーバーからJSON形式で受け取ります。
例えばTwitterのとあるツイートを表示させる場合、Twitter社のサーバーからユーザー名やいいねの数、ツイートの文章などがJSON形式で送られ、JavaScriptを利用してスマホ画面に表示します。
JavaScriptはJSONのデータを変換する必要なく利用できるので、サーバーとの連携がスムーズになりました。
ユーザーの入力情報を記憶
Webサイト上でユーザーが入力した情報をJSON形式で保存します。
Twitterにログインするときに、ユーザー名やパスワードを入力すると、JSON形式でデータが生成されます。その後、生成されたデータを使ってサーバーと通信を行い、一致するユーザーがいればログインできます。
このようにクライアント・サーバーの双方のやり取りはJSONを介して行われています。
データベースに保管
JSON形式のままデータベースに保管できます。
以前はRDBと呼ばれるCSVのようなテーブルデータとしてデータベースに保存されていました。RDBは表形式のデータなので直感的に理解しやすく住所録や基幹システムに採用されていました。
しかし、画像や動画など決まった形式でないデータが増え、RDBでは対処が困難になりました。
JSON形式ではこのようなデータを直接管理することができます。また近年注目されているビッグデータにも活用できることから、今後も需要が伸びていく可能性があるデータ形式です。
コメント