JSON入門!基本フォーマットからファイルの作り方まで解説
JSON
JSON入門!基本フォーマットからファイルの作り方まで解説
アンドエンジニア編集部
2021.11.11
この記事でわかること
JSONとはデータ記述言語の1つで、JavaScriptで定義されているオブジェクト表記法を指します
JSONはテキスト形式で記述が簡単なので、主要なプログラム言語から利用されています
JSONを用いて、ファイルやウェブサーバを通じたデータ交換を簡単に行うことができます

JSON関連記事

JSONとは?

JSON

JSONとはJavaScript Object Notationの略で、データ記述言語の1つです。読み方は「ジェイソン」です。

JSONはテキスト形式で表記されるので、簡単にデータ交換ができます。JavaScriptで定義されているオブジェクト表記法ではありますが、主要なプログラム言語から利用されています。JSONの仕様は、RFCおよびIETFの標準規格です。 参考:IETF STD90 RFC8259 JSON

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

JSONの特徴は?

JSONの特徴は、表記形式がシンプルであることです。具体的には、表記がテキスト形式なのでフォーマットが読みやすいことが挙げられます。さらにデータ量が少ないため、軽量に処理を行うことができます。以上のことから、JavaScriptに限らず言語に依存しないデータ交換が可能です。

その他のデータ交換の方式には、XMLを用いる方法もあります。XMLはExtensible Markup Languageの略で、マークアップ言語の1つです。XMLではユーザが定義したタグを用いてデータ交換を行います。そのためXMLは構文理解が必要で、人間が直接読み取ることが簡単ではありません。

上記理由によりちょっとしたデータ交換には、初心者でも分かりやすいJSONがよく使われています。

JSONのフォーマットは?

JSONのフォーマットは簡単なため、初心者でもすぐに覚えられます。記述はキー(名前)とバリュー(値)のペアで記述していきます。

具体的には、以下の表記形式に従い記述します。 表記形式:基本規則  { “名前”: 値 }  { “名前”: 値 , “名前”: 値 }  {   “名前”: 値 ,   “名前”: 値 ,   “名前”: 値  }

基本規則についてもう少し説明します。 ・キー(名前)とバリュー(値)のペア  データは名前と値のペアで記述します。  名前と文字列の値はそれぞれ”(ダブルクォーテーション)で括ります。  ’(シングルクォーテーション)は使用できません。

記述規則は以下の規定があります。 ・{}(波カッコ)と:(コロン)の利用  データの最初と最後は{}(波カッコ)で括ります。  名前と値の間に:(コロン)を入れます。 ・名前と値のペアの間に,(カンマ)を利用  名前と値のペアが複数ある場合は、名前と値のペアの間に,(カンマ)を入れます。 ・配列は[](角カッコ)で、ネストは{}(波カッコ)で記述  値を入れ子とする場合は配列表記とネスト表記が可能です。 参考:JSONの紹介

JSONの特殊文字の表記形式は?

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

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

JSONのデータ型は?

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

以下の例は、スーパーの食材仕入れデータの使用例です。 使用例:  {   ”Category”: [   {    “ID”:201,    “Name”: “Apple”,    “Cost”:88,    “Qty”:20   },   {    “ID”:202,    “Name”: “Orange”,    “Cost”:99,    “Qty”:50   },   {    “ID”:203,    “Name”: “Banana”,    “Cost”:85,    “Qty”:35   },      :   ]  }

これまで学んだJSON表記形式を活用して、さらに項目や分類を整理することも容易にできます。

JSONファイルとは?

JSON file

JSONファイルとは、JSONフォーマットで記述されたテキスト形式のファイルを指します。ファイルを使ったデータ交換に利用されており、ファイルの拡張子は.jsonです。JSONファイルでは先に学んだフォーマットをテキストエディタやツールで作成していきます。

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

JSONエディタは、Windows用JSONエディタとしてNotepad++やJSONedit、MacOS用はJaysonが有名です。こだわりがなければ、Windows・MacOS・Linuxで動作する統合開発環境(IDE)のVisual Studio Code(VSCode)は無償(無料)で利用できるのでおすすめです。 参考:Microsoft Visual Studio Code

JSONファイルの作り方

先ほどはテキストエディタやツールを用いたJSONファイルの作り方を紹介しました。ここでは、プログラムAPIを説明します。JSONはプログラム言語に依存しないため、各種プログラム言語で利用します。特に、JavaScript・Java・Python・PHPの利用度は高いです。

JSONファイルを作るには、各プログラム言語で提供されているAPIを使用します。以下は、JavaScript・Java・Python・PHPを用いたJSONファイルの作り方です。 ・JavaScript ファイルへの出力は、オブジェクトをJSON.stringify()でJSONデータ形式に変換し、writeFileSync()でファイルに出力します。ファイルの読み込みは、readFileSync()やreadFile()でファイルからJSONデータを読み込み、JSON.parse()でオブジェクトを復元します。

Java Javaでは、JSONObjectクラスが利用できます。最初にimportでnet.sf.json.JSONObject、またはorg.json.JSONObjectのライブラリをインポートします。

ファイルへの出力は、データをJSONObject.put()でJSONデータ形式に変換し、JSONObject.write()でファイルに出力します。ファイルの読み込みは、readLine()でファイルからJSONデータを読み込み、JSONObject.get()でオブジェクトを復元します。

Python PythonではJSON APIを用い、最初に”import json”でライブラリをインポートします。

ファイルへの出力は、 次にjson.dumps()でJSONデータ形式に変換し、writelines()でファイルに出力します。ファイルの読み込みは、readline()でファイルからJSONデータを読み込み、json.loads()でオブジェクトを復元します。

PHP ファイルへの出力は、オブジェクトをjson_encode()でJSONデータ形式に変換し、fwrite()でファイルに出力します。ファイルの読み込みは、fread()やfgets()でファイルからJSONデータを読み込み、json_decode()でオブジェクトを復元します。

JSONの入門本

JSONは簡単で、初心者でも分かりやすいデータ交換フォーマットです。基礎からじっくり学びたい場合は、以下の入門本をおすすめします。

きちんとわかる! JavaScript とことん入門 JavaScriptの基礎からWebサーバとの通信、JSONファイルの通信までカバーします。 出版元:技術評論社 参考:きちんとわかる! JavaScript とことん入門

JavaScriptの基礎が理解できたら、ウェブAPIを理解しましょう。 ・Web API: The Good Parts Web API設計の考え方と手法が理解できます。JSON over HTTP方式を用いてウェブサーバからJSONデータを受け取ることができます。 出版元:オライリー・ジャパン 参考:Web API: The Good Parts

JSONを理解してデータ交換に活用しましょう

efficiency

JSONはシンプルなフォーマットで、初心者でも分かりやすいことが特徴です。JSONフォーマットが理解できたらJSONファイル作成や、ウェブサーバからJSONフォーマットのデータ交換が可能です。ぜひ実際にデータ交換を試してみましょう

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

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

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

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

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

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

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

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

Powered by マイナビ AGENT