JSONとは?今更聞けない入門編!使い方やデータフォーマットについて解説

データサイエンス

2023.09.06

INDEX

JSONは、APIなどでテキストデータを処理する際に用いられることが多いデータフォーマットです。PythonやPHP等の言語でデータ解析を行う場面でも頻繁に使われており、これらの言語を勉強する際にもJSONの理解は重要となります。 この記事では、JSONの定義や記述形式などの基礎的な内容をわかりやすく解説します。また、実際の使用例や注意点などの実践的な内容も併せて解説します。この記事を通してJSONの理解を深め、より効果的な勉強へ繋げていきましょう。

1.JSONとは

まずはJSONの概要や他のデータフォーマットとの違いなど、JSONの基本的な事項について簡単に説明します。

 

(1)JSONとは

 

JSONとはJavaScript Object Notationの略で、JavaScriptというプログラミング言語におけるオブジェクトの書き方を参考に作られたデータフォーマット(データの記述形式)のことです。

JSONはもともとJavaScriptで使用することを想定して開発されました。しかし、人間とコンピューターの双方にとって可読性が高く、データが重くなりづらいという優れた特徴を持つため、現在はJavaScriptに限らずPythonやPHPなど多様な言語で用いられています。

 

(2)他のデータフォーマットとの違い

 

JSON以外の代表的なデータフォーマットとしては、CSVやXMLといったものがあります。それらのフォーマットと比較してJSONが優れている点は、読み書きしやすい、処理が重くなりづらいということが挙げられます。

具体例を通して、JSONがどのように優れているか見てみましょう。以下は、同じ内容のデータをCSV、XML、JSONで記述したものです。

 

①CSV

Number,Prefecture,Capital

1,Kanagawa,Yokohama

2,Aichi,Nagoya

3,Hyogo,Kobe

 

②XML

<XML>

 <List>

  <Number>1</Number>

  <Prefecture>Kanagawa</Prefecture>

  <Capital>Yokohama</Capital>

 </List>

<List>

  <Number>2</Number>

  <Prefecture>Aichi</Prefecture>

  <Capital>Nagoya</Capital>

 </List>

<List>

  <Number>3</Number>

  <Prefecture>Hyogo</Prefecture>

  <Capital>Kobe</Capital>

 </List>

</XML>

 

③JSON

{

  {“Number” : 1, “Prefecture” : “Kanagawa”, “Capital” : “Yokohama”},

  {“Number” : 2, “Prefecture” : “Aichi”, “Capital” : “Nagoya”},

{“Number” : 3, “Prefecture” : “Hyogo”, “Capital” : “Kobe”},

}

 

CSVは内容が直感的に理解しやすい上、文字数が少ないため容量が小さいというメリットがあります。しかし、データの中に改行やカンマがあると構造が崩れてしまうという欠点もあります。

一方、XMLはデータが厳密に構造化されているので、データが扱いやすく、コンピューターにとっては可読性が高いという利点があります。その反面、人間が見ると理解しづらく、文字数が多いため処理が重くなりやすいというデメリットがあります。

 

JSONは、CSVの理解しやすさや容量の軽さ、XMLの扱いやすさを兼ね備えているフォーマットといえます。このような利点があるので、JSONは多様な場面で幅広く使用されています。

2.JSONの主な用途

JSONはどのような場面で用いられることが多いのでしょうか。JSONの主な用途について説明します。

 

(1)データ保存用の形式

 

JSONは、データを保存するための形式としてよく使用されています。Pythonなどでよく使う辞書型のデータをほぼそのまま保存できます。また、PythonにはJSONフォーマットを辞書型に変換できる機能があり、非常に使い勝手が良いです。さらに、必要に応じてCSVやXML等のフォーマットに変換できるので、利便性も抜群です。

 

(2)異なるプログラミング言語、環境間でのデータのやり取り

 

異なる言語、環境の間でデータをやり取りする時にもJSONは重宝します。JSONはテキストを用いたデータ表記方法なので、非常に汎用性が高いです。幅広い環境で使用できるため、異なる言語、環境の間でデータの受け渡しや共有をする時に役立ちます

3.JSONの記述形式

JSONの記述形式は、「{“キー”、”値”}」というように、キーと値がセットになった形式となっています。Pythonの辞書(dict)型に近い表記方法です。データサイエンティストなど、普段の仕事でPythonを扱うことが多い方は理解しやすいでしょう。

具体的なJSONの書き方を説明します。

 

まず、キーは必ずダブルクォーテーション(””)で囲みましょう。この場合は”Prefecture”がキーに該当します。

{“Prefecture” : “Hyogo”}

 

また、キーと値の組み合わせが複数ある場合は、カンマで区切ってください。

{“Prefecture” : “Hyogo”, “Capital” : “Kobe”},

 

さらに、入れ子のように複数のJSONデータを組み合わせることもできます。

{“Prefecture” : “Hyogo”, “Capital” : “Kobe”,  

“Information” : {“Population” : 153.7, “Gourmet” : “beef”}},

 

また、以下のように配列を扱う場合は{}ではなく[]を使用してください。配列とは、同じ型のデータを一列に並べたものです。

 

{“Prefecture” : “Hyogo”, “Capital” : “Kobe”,  

“Population Ratio: [0.526, 0.474]},


このように、JSONはデータ構造や表記方法が明確に定義されています。そのため、コンピューター側からも読み取りやすいデータフォーマットといえるでしょう。

4.JSONが対応しているデータ型

JSONが対応している主なデータ型を4つ紹介します。

 

(1)文字列型

 

JSONは、文字列を扱うことができます。必ず以下のようにダブルクォーテーションで囲んで使用してください。

{“Prefecture” : “Hyogo”}

{“Prefecture” : “埼玉”, “Capital” : “さいたま”},

 

なお、ダブルクォーテーションで囲めばひらがなや漢字を扱うこともできます。Pythonなどの言語だとシングルクォーテーション(’’)で囲んでも文字列を扱うことができますが、JSONでは必ずダブルクォーテーションを使うようにしましょう。

 

(2)数値型

 

JSONは、数値も扱うことができます。数値は以下のようにダブルクォーテーションで囲わずに記述してください。

{“Number” : 1}

 

ダブルクォーテーションで囲むと、数値を入力しても文字列扱いとなってしまうため注意しましょう。

 

(3)bool

 

boolとは真(true)か偽(false)いずれかの値をとるデータ型のことです。日本語で「論理型」といいます。以下のように記述します。

{“Attendance” : true}

 

(4)null

 

nullとは「何もない」という意味です。項目として用意されているものの、該当する値がない時に以下のように使用します。

{“Number” : 2, “Prefecture” : “Aichi”, “Capital” : “Nagoya”, “Famous Attraction” : null},

5.主なJSONエディター

JSONには専用のエディターが存在します。JSONはXMLと比較すると人間にも読み取りやすいですが、カッコが多く複雑なフォーマットです。ここまで紹介した例を見ても、理解に苦労した方もいらっしゃるのではないでしょうか。

専用のエディターを用いるとデータ構造が簡単にでき、楽に編集できるようになります。世の中には多くのエディターがありますが、ここでは主なものを2つ紹介します。

 

(1)JSON Editor

datamix20230906-1

出典:https://www.jeremydorn.com/json-editor

 

JSON Editorは非常に多機能なエディターです。スキーマを編集してデータの構造を定義し、編集する形でJSONを作成します。データ入力形式を指定したり、カラーピッカー※を定義できたりと、柔軟な編集が可能です。

JSON Editorを使いこなすためにはJSONの構造や表記形式を理解する必要がありますが、使いこなせればできることが多いエディターです。

 

※カラーピッカー:文字色を選択する機能のこと。上の図では、「favorite color」の欄がカラーピッカーに該当します。

 

(2)JSON Editor Online

datamix20230906-2

出典:https://jsoneditoronline.org/#right=local.kuraha

 

JSON Editor Onlineは、オンラインで使用可能なエディターです。非常にシンプルなエディターで、画面左側がテキスト、右側が構造化されたビューとなっています。左右どちらかを修正して中央のボタンを押すともう一方にも反映されます。

6.JSONファイルの作り方

JSONファイルは、テキストベースの表記形式であるため、テキストエディタで作ることができます。テキストエディタしては、Notepad++やTextEdit、Vimなどが挙げられます。OSごとに適したテキストエディタを使いましょう。

複雑な構造のJSONファイルを作る時は専用のエディターを使用した方が無難です。例えば先ほど紹介したJSON Editorなどを使用しましょう。

7.JSONの使用例

JSONの使用例として、天気予報に関する情報を取得するAPI「Lifesocket」を紹介します。

datamix20230906-3

出典:https://lab.life-socket.jp/download_form

 

一般的に、APIを用いてWebサイトからデータを取得する時のデータ形式はJSONとなります。この「Lifesocket」も、JSON形式でWebサイトからデータを取得します。

 

天気に関する情報には、気温、風向き、気圧や降水量など、膨大な要素が含まれます。そのためデータ構造が大きくなりやすく、データを取り出す際の処理も重くなる傾向があります。

「Lifesocket」はシンプルなJSON形式でデータを扱うため、処理が重くなりづらいというメリットがあります。この他にも、以下のようなメリットがあります。

・JSONは可読性が高いため比較的扱いやすく、導入教育に手間がかからない

・JSONはテキストベースなのでOS等の環境によらず使用可能

 

まさに、JSONの利点を存分に活かした使用例といえます。

8.JSONの注意点

軽量かつ可読性が高く非常に便利なJSONですが、使用の際は以下の点に注意が必要です。

 

・データ構造が複雑になりがち

・コメントを記載できない

・表記形式が厳密に定められている

 

それぞれの注意点について説明します。

 

(1)データ構造が複雑になりがち

 

JSONの注意点としてまず挙げられることは、データ構造の自由度が高い分、複雑になりやすいという点です。

JSONは、入れ子や配列を用いることで柔軟にデータ構造を構築できます。しかし、裏を返せば、際限なく複雑な構造が作れてしまうということを意味しています。構造が複雑になると、繰り返し処理やデータ読み込みの回数が増えて、処理が重くなってしまうこともあります。

 

データ形式によってはCSV、XMLといった他のフォーマットと併用することを検討しましょう。例えば、比較的単純な構造のデータであればCSVで扱うなど、状況に応じてフォーマットを選択するようにしましょう。その為、他のデータフォーマットの特徴についてもよく理解しておくことが重要です。

 

(2)コメントを記載できない

 

JSONファイルの中にはコメントを記載することができません。その為、JSONデータが送られてきたものの、何もコメントが記載されていないために理解するのに時間がかかり、生産性が低下する可能性もあります。JSONでデータのやりとりする時には必ずデータの内容を別途説明するようにしましょう。

 

(3)表記形式が厳密に定められている

 

JSONはデータの表記形式が厳密に定められています。キー・値の組み合わせをカンマで区切る、キーはシングルクォーテーションでなくダブルクォーテーションで囲むなどのルールがあります。

ルールを一つでも間違えてしまうと、正常に読み込まれなくなります。JSONに限ったことではないですが、普段使い慣れている言語と表記方法が違うとミスをしがちなので、細心の注意を払って取り扱うようにしましょう。なお、JSONLintなどのアプリケーションを用いると、ミスがないかを確認することができます。

まとめ

この記事では、JSONの定義や記述形式、実際の使用例や注意点などを解説しました。

 

JSONはテキストベースのデータフォーマットで、人間・機械双方にとって読みやすいという特徴があります。記述量も比較的少なく、処理が重くなりづらいです。そのため、さまざまな言語・環境において使用されています。データサイエンティストのような仕事の中でデータを多用する方にとっては非常に使い勝手が良い表記形式といえるでしょう。

データミックスでは、初学者や文系出身の方でもデータサイエンティストに必要な知識やスキルを体系的に学習できるデータサイエンティスト育成講座を提供しています。

受講料の最大70%が支給される専門実践教育訓練の指定講座として認定されている本格的な講座で、ビジネスの現場で役立つ実践的なスキルを習得できます。

オンラインで受けられる無料の個別相談も実施していますので、「カリキュラムの詳細を知りたい」「講座を受講してみたいけれど、ついていけるか不安」という方もぜひお気軽にお申し込みください。

関連記事

まずはオンラインで体験&相談

体験講座やワークショップ、キャリアの相談、卒業生との交流など、さまざまな無料オンラインイベントを開催しています。

公式サイトへ

ピックアップ

VIEW MORE

インタビュー

VIEW MORE

ランキングRANKING

  • WEEKLY週間

  • MONTHLY月間

VIEW MORE