JSON(JavaScript Object Notation)とは:構造、用途、標準化
JSONは、JavaScriptのオブジェクトリテラル構文に由来する軽量なテキストベースのデータ交換形式です。言語に依存せず、API、設定、データ保存に広く利用されています。
JSON(JavaScript Object Notation)は、構造化データを表現するためのコンパクトなテキスト形式です。構文はJavaScriptのオブジェクトリテラルに似ていますが、JSONは特定の言語に依存せず、プログラムコードではなくデータ交換を目的としています。単純で人が読み取りやすい形式であるため、記述や内容の確認が容易です。オブジェクト(キーと値の組)と配列(順序付きのリスト)を組み合わせることで、多くのツールが解析できる形で複雑な情報を表現できます。
画像ギャラリー
1 画像構造とデータ型
JSONには少数のデータ型と、制約のある構文があります。主な要素は次のとおりです。
- オブジェクト:波括弧で囲まれた、順序を持たない名前と値の組の集合。
- 配列:角括弧で囲まれた、順序付きの値のリスト。
- 文字列:二重引用符で囲まれたテキスト。特殊文字にはエスケープを使用します。
- 数値:引用符で囲まない数値。整数または浮動小数点数です。
- 真偽値:リテラルのtrueとfalse。
- null:明示的な空の値を表すリテラル。
JSONは多くの言語のオブジェクトリテラル構文よりも厳格です。キーは引用符で囲んだ文字列でなければならず、文字列には二重引用符を用い、末尾のカンマは許可されません。こうした制約により解析が簡単になり、異なる環境間での相互運用性が高まります。
歴史と標準化
この形式は、ウェブで使われていたより冗長な形式に代わる軽量な選択肢として普及しました。簡潔にデータを交換する必要があるウェブアプリケーションで広く使用されるようになりました。その後、言語をまたぐ実装が一貫して動作するよう、標準化団体によって形式化され文書化されました。
一般的な用途と例
JSONは現代のソフトウェアで広く使われています。代表的な用途には、次のようなものがあります。
- ウェブサービスおよびRESTful APIでのデータ交換。多くの場面でXMLに代わって使用されます。
- ウェブアプリケーションにおけるAJAXのリクエストとレスポンス。ページ全体を再読み込みせずに動的な更新を可能にします。
- 可読性の高さを生かした、開発ツールやアプリケーションの設定ファイル。
- マイクロサービスやイベントストリームにおけるメッセージペイロード。
JSONは言語中立であるため、ほとんどのプログラミング環境でサポートされています。多くの言語向けの実装やライブラリがあり、Python向けにも直接の対応またはライブラリが提供されています。
相違点と注目すべき事実
XMLなどの代替形式と比べると、JSONは一般に冗長性が低く、コード内のネイティブなデータ構造に対応付けやすい傾向があります。JSON自体はスキーマのような制約を提供しませんが、JSON Schemaなどの関連仕様やツールによって検証を追加できます。この形式に一般的に関連付けられるMIMEタイプはapplication/jsonです。可読性、単純さ、幅広いサポートが、ウェブAPIや設定で広く採用されている理由です。
形式の概要や解析規則をすばやく確認するため、多くの資料では、構造化された情報の交換と保存に関するJSON構文およびベストプラクティスを解説しています。
関連項目
著者
AlegsaOnline.com JSON(JavaScript Object Notation)とは:構造、用途、標準化 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/51344
出典
- datatracker.ietf.org : "RFC 4627"
- json.org : "JSON"
- ajaxonomy.com : "JSON Beats XML, or Ajaj vs Ajax"
- docs.python.org : "18.2. json — JSON encoder and decoder — Python v2.7.2 documentation"