注目記事

JSONファイルとは?基本構造からファイルの作り方、読み書き方法まで解説

thumb_json

この記事でわかること

  • JSONファイルとは、JSONフォーマットで記述されたテキスト形式のファイルを指します

  • JSONはJavaScriptで定義されているオブジェクト表記法の1つです

  • JSONファイルは、主要なプログラム言語から利用されておりデータ交換に用いられます

IT・Webエンジニアの転職なら…
マイナビ転職 IT AGENTへ!
【無料転職サポート申し込みはコチラ】

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

  • 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ファイルを理解したら、実際のシステムで利用することをおすすめします。