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のNotepad・MacOSのTextEdit、Linuxの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ファイルの作り方
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ファイルを理解したら、データ交換に利用しましょう
JSONファイルは構造がシンプルです。配列と入れ子が理解できればJavaScriptをはじめとする多くのプログラム言語で利用できます。データ交換を簡単に行うことができますので、多くのシステムで利用されています。JSONファイルを理解したら、実際のシステムで利用することをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから