JSONファイルとは?基本構造からファイルの読み書き方法まで解説
JSON
JSONファイルとは?基本構造からファイルの読み書き方法まで解説
アンドエンジニア編集部
2021.10.12
この記事でわかること
JSONファイルとは、JSONフォーマットで記述されたテキスト形式のファイルを指します
JSONはJavaScriptで定義されているオブジェクト表記法の1つです
JSONファイルは、主要なプログラム言語から利用されておりデータ交換に用いられます

JSONファイルとは?

JSON

JSONファイルとはJSONフォーマットで記述された、テキスト形式のファイルを指します。JSONファイルはファイルを使ったデータ交換に利用されています。ファイルの拡張子は.jsonで、RFCおよびIETFの標準規格となっています。 参考:IETF STD90 RFC8259 JSON

JSONとは?

JSONとはJavaScript Object Notationの略で、ジェイソンと呼んでいます。JSONはJavaScriptで定義されているオブジェクト表記法の1つで、テキスト形式で表記されるので、簡単にデータ交換ができます。そのためJavaScriptに限らず、主要なプログラム言語から利用されています

JSONの表記形式

JSONの表記形式はとてもシンプルで、以下の規則に従います。

表記形式:基本規則  { “名前”: 値 }  { “名前”: 値 , “名前”: 値 }  {   “名前”: 値 ,   “名前”: 値 ,   “名前”: 値  }

名前と値のペア  データは名前と値のペアで記述します。  名前と文字列の値はそれぞれ”(ダブルクォーテーション)で括ります。  ’(シングルクォーテーション)は使用できません。 ・{}(波カッコ)と:(コロン)の利用  データの最初と最後は{}(波カッコ)で括ります。  名前と値の間に:(コロン)を入れます。 ・名前と値のペアの間に,(カンマ)を利用  名前と値のペアが複数ある場合は、名前と値のペアの間に,(カンマ)を入れます。 ・配列は[](カッコ角カッコ)で、ネストは{}(波カッコ)で記述  値を入れ子とする場合は配列表記とネスト表記が可能です。 参考:JSONの紹介

JSONの特殊文字の表記形式

以下の特殊文字は、エスケープ文字として\(バックスラッシュ)を先に入力し使用します。

\”(ダブルクォーテーション)\\(バックスラッシュ)\/(スラッシュ)\b  バックスペースを意味します。 ・\r  フォームフィードを意味します。 ・\n  ラインフィードを意味します。 ・\r  キャリッジリターンを意味します。 ・\t  タブを意味します。 ・\uXXXX  16進数表記です。

JSONのデータ型

JSONは以下のデータ型に対応しています。

文字列  ”(ダブルクォーテーション)で括った文字列で、特殊文字は\(バックスラッシュ)を先に付けます。 ・数値  0から9の数字、符号、小数点、指数記号(Eとe)が使えます。  8進数と16進数は使えません。 ・true、false  論理値で全て小文字で表記します。 ・null  ヌル値で全て小文字で表記します。 ・オブジェクト  JSONオブジェクトを{}(波カッコ)で入れ子にすることができます。 ・配列  [](角カッコ)で括ることで、連続したデータ領域が割り当てられます。

これまで学んだJSON表記形式を使ってデータ構造を記述してみます。以下の例は、クラスの学生情報とテスト成績のJSONデータです。名前と値の組み合わせは、実際の使用データに基づいて定義していきます。

使用例:クラスの学生情報とテスト成績のJSONデータ  {   ”test-data”: [   {    “class-id”:10,    “name”: “foo”,    “test-result”:[91, 78, 87],    “passed”:true   },   {    “class-id”:11,    “name”: “bar”,    “test-result”:[45, null, 59],    “passed”:false   },   {    “class-id”:12,    “name”: “baz”,    “test-result”:[99, 96, 97],    “passed”:true   },      :   ]  }

JSONの作成ツール

JSONはテキスト形式のファイルですから、WindowsのNotepadMacOSのTextEditLinuxのVim等のテキストエディタでファイルの作成や修正が可能です。しかしながら高度なJSONの編集機能が必要でしたら、JSONに対応する作成ツール・エディタを使用します。

JSONエディタは、ビューアとしてデータ(名前・値)の確認さらに編集が可能です。以下が主要なJSONエディタです。

Visual Studio Code(VSCode)  統合開発環境(IDE)として有名なソフトウェアで、JSONに対応します。  IDEのため、構文チェックや検索・編集が容易です。  Windows・MacOS・Linuxで動作し、C++やPython・PHP等多数のプログラム言語に対応します。  参考:Microsoft Visual Studio Code

Windows用JSONエディタ  Notepad++はNotepadエディタをプログラム言語に対応させたような操作性を持つ、フリーソフトウェアのエディタです。  80種類ほどのプログラム言語に対応します。  参考:Notepad++  JSONeditはZipファイルを展開するだけで使用できるJSONエディタです。  CSVファイルをインポートする機能があります。Unicodeサポートがされていないことが欠点です。  参考:JSONedit(https://tomeko.net/software/JSONedit/)

MacOS用JSONエディタ  Jayson - Visual JSON Editorは有償となってしまいますが、グラフィカルなエディタです。  参考:Jayson - Visual JSON Editor

上記比べてみるとVisual Studio Codeは無償(無料)利用できますし、Windows・MacOS・Linuxで動作しますのでおすすめのソフトウェアです。

JSONファイルの作り方

how to use

JSON形式のファイルの作り方は、各プログラム言語の用法に合わせてAPIを使用します。以下はJSONに対応する代表的なプログラム言語です。JSON形式でファイルが出力されます。

Python  PythonではJSON APIを用い、”import json”でライブラリをインポートします。  次にjson.dumps()でJSONデータ形式に変換し、writelines()でファイルに出力します。

Java  Javaでは、JSONObjectクラスが利用できます。  importでnet.sf.json.JSONObject、またはorg.json.JSONObjectのライブラリをインポートします。  次にデータをJSONObject.put()でJSONデータ形式に変換し、JSONObject.write()でファイルに出力します。

PHP  オブジェクトをjson_encode()でJSONデータ形式に変換し、fwrite()でファイルに出力します。

JavaScript  オブジェクトをJSON.stringify()でJSONデータ形式に変換し、writeFileSync()でファイルに出力します。

JSONファイルの読み込み方法

JSON形式のファイルの読み込みも作成時と同様に、各プログラム言語の用法に合わせてAPIを使用します。JSON形式のファイルからデータを読み込み、変換することができます。

Python  作成時同様jsonライブラリをimportします。  次にreadline()でファイルからJSONデータを読み込み、json.loads()でオブジェクトを復元します。

Java  作成時同様、JSONObjectクラスのライブラリをインポートします。  次にreadLine()でファイルからJSONデータを読み込み、JSONObject.get()でオブジェクトを復元します。

PHP  fread()やfgets()でファイルからJSONデータを読み込み、json_decode()でオブジェクトを復元します。

JavaScript  readFileSync()やreadFile()でファイルからJSONデータを読み込み、JSON.parse()でオブジェクトを復元します。

JSONファイルの削除方法

JSON形式のファイルの削除はOSのファイル削除の操作で削除します。プログラム言語内でも作成したファイルをAPIで削除することができますし、プログラム内で使用中のデータも言語の演算子で削除します。

また、画像共有サイトのGoogleフォトでは一括ダウンロードすると.jsonファイルが付属しています。このファイルは写真画像の更新日時のデータが入っていますから、写真をダウンロードして整理する際に利用できます。勝手にファイルがダウンロードされたと慌てて削除せずに、JSONエディタで開いてみると良いでしょう。

JSONファイルを理解したら、データ交換に利用しましょう

future success

JSONファイルは構造がシンプルです。配列と入れ子が理解できればJavaScriptをはじめとする多くのプログラム言語で利用できます。データ交換を簡単に行うことができますので、多くのシステムで利用されています。JSONファイルを理解したら、実際のシステムで利用することをおすすめします。

Twitterをフォローしよう!
この記事をシェア
Twitter
Facebook
LINE
Hatena
アンドエンジニアの公式LINEができました! ピッタリの記事や役立つ情報が届きます!

編集部オススメコンテンツ

eyecatch_visual_coder
Adobe製品を使わない"デザイナー"?「ビジュアルコーダー」が考える、自己満足で終わらないWebデザインとは
三角
2020.06.16

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
この記事をシェア
Twitter
Facebook
LINE
Hatena
アンドエンジニアの公式LINEができました! ピッタリの記事や役立つ情報が届きます!

編集部おすすめコンテンツ

アンドエンジニアへの取材依頼、情報提供などはこちらから