JSONとは?データ交換のための初心者向けガイド
JSON (JavaScript Object Notation) は、データがインターネットを介して移動する方法を根本的に変えました。JSONがウェブを支配する前は、XML (Extensible Markup Language) が主要な形式でした。XMLは強力でしたが、冗長で重く、人間が素早く読むのが困難でした。
JSONは、人間にとって読み書きが容易で、機械にとって解析と生成が驚くほど簡単な軽量な代替手段として登場しました。モダンなウェブアプリケーションの標準となり、フロントエンドインターフェースとバックエンドサーバー間の橋渡しをしています。
JSONは本質的に、言語に完全に依存しないテキスト形式です。JavaScriptプログラミング言語から派生していますが、Python、Ruby、C#、Java、PHPなど、実質的にすべてのモダンなプログラミング言語でJSONデータを生成および解析するためのコードが存在します。この普遍性により、データ交換に理想的な候補となっています。
配達アプリで食べ物を注文していると想像してみてください。あなたの携帯電話は、何を望んでいるかをサーバーに伝える必要があります(例: 「ピザ1枚、玉ねぎ抜き」)。サーバーはこれを処理し、確認を返します。JSONは、この会話に使用される言語です。それは、あなたの携帯電話(クライアント)とレストランのシステム(サーバー)の両方が即座に理解できる構造化された形式でデータをパッケージ化します。
JSONの構造
JSONは、実質的にすべてのプログラマが精通している2つの普遍的なデータ構造に基づいています。
- **名前/値のペアのコレクション:** 各種言語で、これはオブジェクト、レコード、構造体、辞書、ハッシュテーブル、キー付きリスト、または連想配列として実現されます。
- **値の順序付きリスト:** ほとんどの言語で、これは配列、ベクトル、リスト、またはシーケンスとして実現されます。
JSONがXMLに勝った理由
XMLからJSONへの移行は偶然ではありませんでした。JSONは冗長性が低いため、ファイルサイズが小さく、ネットワーク経由での転送が高速になります。これは、帯域幅が制限され、遅延が重要なモバイルインターネットにとって重要な要素です。
JSONは閉じタグ(例: </name>)を使用しないため、文字数を大幅に削減します。さらに重要なのは、JSONがコード内のデータオブジェクトに直接マッピングされることです。複雑なパーサーでDOMツリーを走査する必要はなく、JSONをロードするだけで、すぐに変数内の利用可能なオブジェクトに変換されます。
今日、JSONはどこにでもあります。RESTful API、構成ファイル(例: package.json や VS Code の設定)、MongoDB のような NoSQL データベース、さらにはログファイルにも利用されています。JSONを理解することは、もはや開発者にとってオプションではなく、モダンなウェブにとって基本的なリテラシー要件となっています。