JSON関連記事
JSONとは?
JSONとはJavaScript Object Notationの略で、データ記述言語の1つです。読み方は「ジェイソン」です。
JSONはテキスト形式で表記されるので、簡単にデータ交換ができます。JavaScriptで定義されているオブジェクト表記法ではありますが、主要なプログラム言語から利用されています。JSONの仕様は、RFCおよびIETFの標準規格です。 参考:IETF STD90 RFC8259 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ファイルとは、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を理解してデータ交換に活用しましょう
JSONはシンプルなフォーマットで、初心者でも分かりやすいことが特徴です。JSONフォーマットが理解できたらJSONファイル作成や、ウェブサーバからJSONフォーマットのデータ交換が可能です。ぜひ実際にデータ交換を試してみましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから