2024.01.30
JSONとは?基本を初心者向けにわかりやすく解説
JSONは、JavaScriptをもとに開発されたデータ定義方法のひとつです。テキスト量が少なく軽量で、処理速度も速いことが特徴です。APIサーバーを経由したシステム間のデータ転送などにもよく利用されています
本記事では、JSONの概念や表記形式について解説します。さらに、XMLとの違いやJSONを使用するメリット、実際の使用例についても解説しますので、ぜひ参考にしてください。
この記事でわかること
- JSONの定義
- JSONの書き方
- JSONのメリット
- JSONの活用方法
JSONとは
JSONは「JavaScript Object Notation」の略称で、読み方は「ジェイソン」です。記述方式がその名のとおりJavaScriptをもとにしており、軽量でプログラミング言語に依存しないデータ形式のことです。
JSONは、複雑な構造データを人間でも読みやすく、コンピュータにも認識しやすい記法のひとつとして誕生したものです。非常に使い勝手の良いフォーマットとして、JavaScript以外でも広く利用されています。
JSONとXMLの違い
JSONが登場する以前に、システムデータのやり取りでよく知られている言語としてXMLがあります。JSONとXMLの違いは、データの記述方法と解析方法の違いです。XMLは、マークアップ言語と呼ばれるHTMLに似た構造を持っています。
タグを使ってデータを構造化するため、コンピューターにとってはデータを認識しやすい利点があるものの、文字数が多いため処理が重くなったり、人間にとっては直感的に理解しづらかったりといった傾向があります。
一方で、JSONは主にキーと値のペアとして作成するデータ構造のため、文字数も少なくデータも軽量になります。人間にとっても読みやすく、書きやすい表記形式がJSONになります。
JSONは、理解しやすい表記形式やデータ量の軽さ、XMLのような認識しやすいデータ構造であることが、幅広く利用されるようになった要因といえるのではないでしょうか。
JSONを使用するメリット
JSONは、軽量で使い勝手の良いデータ定義方法のひとつと解説しましたが、軽量で使いやすいことにはどのようなメリットがあるのでしょうか。この章では、JSONを使用するメリットについて解説します。
XMLよりテキスト量が少ない
JSONは、XMLに比べて表記形式がシンプルで、テキスト量が少なく済むことからデータ量も軽量です。高速通信を必要とする場合でも、処理速度も速いことがメリットです。
XMLは、タグを使用するため同じ情報を記載しても、JSONよりもテキスト量が多くなるため、通信に負担がかかることがデメリットでした。JSONは、高速通信を必要とする場合にも有利となります。
JavaScript上で扱いやすい
JSONはもともとJavaScript上で扱うために開発されました。そのため、JavaScript上でも扱いやすいデータ形式です。JavaScriptのフレームワークであるReactやVueなどとの親和性も高いため、データを容易に扱うことができます。
また、JSONは、通信するためのデータ形式と、ブラウザ内のデータ保存両方に対応しているため、ブラウザ形式のデータを加工せずに利用できるのも、フロントエンド開発の効率化にも一役買っています。
解析しやすい
JSONはキーと値をペアとして記述するため、データ構造や表記方法も明確です。XMLの場合、XMLパーサーと呼ばれるプログラムを使用して解析する必要がありましたが、JSONはJavaScriptの関数を使用するため、解析しやすいことがメリットです。
そのため、構造が深くなっても、XMLよりも早く解析ができるようになります。データのデバッグや確認作業といったメンテナンスが容易になるのもメリットといえるでしょう。
JSONの表記形式
JSONは、キー(名前)とバリュー(値)をペアで記述する表記形式のため、非常にシンプルです。JavaScriptを扱ったことがない方でもすぐに覚えられるでしょう。この章では、JSONの基本的な表記形式について解説します。
キーと値のペアで記述する
JSONの基本の表記形式は、キーと呼ばれる名前とバリューの値をペアにして記述をします。表記の仕方は、キーと値をコロン(:)で区切る記述になります。
たとえば、以下のような書き方になります。
{”キー”:値} |
キーはダブルクォーテーションで囲む
キーは必ず「”(ダブルクォーテーション)」で囲む必要があり、「’(シングルクォーテーション)」で記述するとエラーとなります。
また、値となる数値はダブルクォーテーションで囲む必要はありませんが、文字列はダブルクォーテーションで囲まなければいけないため注意が必要です。
複数ペアを指定する際はカンマで区切る
キーと値を複のペアを指定して表記する際は、キーと値の間に「,(カンマ)」を入れます。
記述は以下のようになります。
{”キー1”:値1,”キー2”:値2} |
全体は波カッコ・大カッコで囲む
JSON全体は、「{(波カッコ)」または「[(大カッコ)」で始まり、「}(波カッコ)」または「](大カッコ)」で終わります。
以下のように、波カッコの中に、波カッコを入れる「ネスト」と呼ばれる記述方式もあります。
{ ”キー”:値, ”キー”:[{ ”キー”:値, }] } |
JSONが対応しているデータ型
JSONはキーや数値など、項目に指定できるデータ形式に決まりがあります。この章では、JSONが定めているデータ型について、それぞれ解説します。
文字列
JSONは、ダブルクォーテーションで囲むことで文字列を扱うことができます。漢字やひらがなにも対応しています。
{”name”:”中村太郎”} |
また、「”(ダブルクォーテーション)」やバックスペースを表す「b」、4桁の16進数で表すUnicode文字「uXXXX」に関しては、「\(バックスラッシュ)」を先頭に持ってくることで記述できます。
数値
数値は、0から9までの数字や小数点、符号、指数記号Eとeが使用でき、8進数と16進数は使えません。数値を指定する際は、ダブルクォーテーションで囲まず、そのまま記述します。ダブルクォーテーションで囲んでしまうと文字列として認識されてしまいますので、注意が必要です。
bool値
bool(ブール)値とは「true(真)」や「false(偽)」で表す理論値のことです。2つの値しかないため、条件の達成・未達成を判定するための「フラグ」で使用することが多いです。必ず小文字で記載します。
{”flag”:true} |
null
null(ヌル)とは、何のデータも含まれない状態のことを表します。設定すべき値がない場合はnullを指定し、nullもすべて小文字で記載します。
{”キー”:null} |
JSONの主な活用例
JSONは軽量でプログラミング言語に依存しないため、非常に使い勝手の良いフォーマットとして、JavaScript以外でも広く利用されています。この章では、主にどのような場面で活用されているのか、活用例について解説します。
データの一時保存
JSONは、データの一時保存に最適です。たとえば、Webで送信されたフォームなど、ユーザー側が生成したデータなどによく使われます。
テキスト以外のデータを保存する際は、シリアライズとよばれる複数の要素を一列に並べる処理が必要ですが、直感的なデータの読み書きが可能です。
システム間のデータ転送
JSONは、APIサーバーを経由したシステム間のデータ転送によく使用されています。APIとは、プログラムやWebサービスの間をつなぐインターフェースのことです。
天気予報もAPI通信を使用しています。天気予報は気温や降水量など膨大な情報が含まれており、データを取りだす際は処理が重くなる傾向があります。
情報が多い天気情報のデータをデータ量が少なくできるJSONで返すことで、簡単に天気予報のデータを取得することができるのです。
オブジェクトへの変換
JSON形式のデータは文字列で保持しているため、コンピュータとしてはそのままでは扱いにくいのです。そのため、通常はオブジェクト形式へ変換してデータを使用することになります。
JSON形式の文字列をオブジェクトへ変換する際は、JSON.parse()を使用します。JSON.parse()を使用することで、JavaScriptで扱いやすくなるのです。
変換例は以下のようになります。
// JavaScriptオブジェクトへの変換 let objData = JSON.parse(jsonData); console.log(objData); /* { users: [ { “number”: 1, “name”: “中村太郎”, “age”: 20 }, { “number”: 2, “name”: “中村花子”, “age”: 30 } ] } */ |
JSON文字列への変換
オブジェクト形式で変換を行ったデータは、JSON形式へ変換することも可能です。JavaScriptのオブジェクトや値をJSON文字列へ変換する際は、JSON.stringifyを使用します。
変換例は以下のようになります。
// JavaScriptオブジェクトへの変換 const users = { users: [ { “number”: 1, “name”: “中村太郎”, “age”: 20 }, { “number”: 2, “name”: “中村花子”, “age”: 30 } ] } // JSONへ変換 let jsonData = JSON.stringify(users); console.log(jsonData); // {“users”:[{“number”:1,”name”:”中村太郎”,”age”:20},{“number”:2,”name”:”中村花子”,”age”:30}]} |
次にこちらでは、将来性が高く、Android開発者や企業からの支持も厚いKotlinについて解説します。Javaとの違いやできること・将来性について解説しますので、合わせてご覧ください。
JSONは初心者でも扱いやすい
本記事では、JSONの概念や表記形式、実際の使用例について解説しました。JSONは記述形式がシンプルで、初心者にも扱いやすいのが特徴です。非常に使い勝手の良いフォーマットのため、JavaScript以外のプログラミングでも幅広く利用されています。
JSONは、テキスト量も少なく、データ構造や表記方法が明確です。そのため、処理速度が速いだけでなく、解析しやすいデータ形式です。データのデバッグや確認作業といったメンテナンスが容易になるのもメリットといえるでしょう。
JSONはWeb開発においては欠かせない技術のひとつといえます。今からJSONを学んで、プログラミング言語の幅を広げてみてはいかがでしょうか。
投稿者
-
システム開発、Webサイト制作、ECサイトの構築・運用、デジタルトランスフォーメーション(DX)など、デジタルビジネスに関わる多岐の領域において、最新のトレンド情報や実践的なノウハウを発信してまいります。
新着情報
同じカテゴリの記事
新着記事
人気の記事