JSONとは?初心者向けガイド

Web開発の旅を始めたばかりであれば、おそらく既に無数にJSONに遭遇しているでしょう、それが何であるか知らなかったとしても。JSON(JavaScript Object Notation)は、アプリケーション間でデータを送信するために最も広く使用されている形式です。ソーシャルメディアで読むツイートから、スマートフォンの天気データまで、JSONは舞台裏で働いており、これらすべてを可能にしています。

シンプルな言葉でのJSON

JSONを、異なるコンピュータシステム間のデータの普遍的な翻訳者と考えてください。人間が国際ビジネスで共通言語として英語を使用することに合意したように、コンピュータとアプリケーションは、情報交換のための共通形式としてJSONを使用することに大きく合意しました。しかし、以前の代替案と比較して、JSONを特別にしているのは何でしょうか? その核心において、JSONは特定のルールに従うテキストとしてデータを書く方法に過ぎません。これらのルールは、人間が読むことができ、コンピュータが簡単に解析できるほど単純です。JSONファイルを見ると、わずかな基本要素を使用して明確な階層構造に整理されたデータが表示されます:オブジェクト用の波括弧{}、リスト用の角括弧[]、名前と値を分離するコロン、項目を分離するカンマです。 その前身であるXMLが<name>太郎</name>のような冗長な開閉タグを使用していたのとは異なり、JSONはよりクリーンな構文を使用します:{"name": "太郎"}。このシンプルさは、JSONが非常に人気になった主な理由の1つです。乱雑さが少なく、書きやすく、ネットワーク経由で送信する際のスペースも少なくて済みます。 JSONは現実世界の概念を自然に表現します。人は、名前、年齢、メールなどのプロパティを持つオブジェクトとして表現できます。ショッピングカートは、製品オブジェクトの配列にすることができます。会社は、従業員と部門の配列を含むオブジェクトにすることができます。この現実世界のエンティティとJSON構造間の自然なマッピングが、直感的に扱えるようにしています。 名前に「JavaScript」が含まれていますが、JSONは完全に言語に依存しません。すべての主要なプログラミング言語には、JSONの解析と生成のための組み込みサポートがあります。Pythonにはjson、JavaにはJacksonとGson、PHPにはjson_encodeとjson_decode、JavaScriptは構文がオブジェクトリテラル表記に基づいているため、自然にJSONと連携します。この普遍的なサポートは、JSONがデータ交換のデファクトスタンダードになったもう1つの理由です。

JSONが人気の理由

JSONのデータ交換の世界における支配への台頭は、偶然には起こりませんでした。開発者が直面していた実際の問題の解決策として登場し、代替案よりもこれらの問題をよりよく解決するため、繁栄し続けています。 JSONが広く普及する前は、XMLがWebサービス間のデータ交換の主要な形式でした。XMLは強力で柔軟ですが、大きなオーバーヘッドが伴います。XMLドキュメントには、処理命令、名前空間、属性対要素の決定、複雑なDOMまたはSAXパーサーでの解析が必要です。単純なデータ交換には、これは過剰でした。開発者はより軽量なものを求めていました。 JSONはその軽量な代替案を提供しました。XMLでユーザーのリストを返すREST APIは、開閉タグで数十行を必要とする可能性がありますが、JSONで同じデータをわずかなスペースで表現できます。このペイロードサイズの削減は、より高速なネットワーク転送と低い帯域幅コストに直接つながり、特にすべてのキロバイトが重要なモバイルアプリケーションにとって重要です。 解析のストーリーも同様に説得力があります。JavaScriptでは、JSON.parse()が文字列をネイティブJavaScriptオブジェクトに即座に変換するため、JSONの解析は本質的に無料です。これを、パーサーオブジェクトの作成、ノードタイプの処理、ドキュメントツリーのナビゲーションを必要とするXML解析と比較してください。他の言語でも、JSON解析は通常、XML解析よりも簡単で高速です。 JSONのシンプルさは、開発者の学習曲線も削減します。ジュニア開発者は、数分でJSONの構文を理解できます:キーと値のペアを持つオブジェクト、値の配列、そしていくつかのデータ型(文字列、数値、ブール値、null)。DTD、XPath、XSLT、またはXMLに伴うことが多い他の十数の技術を学ぶ必要はありません。 REST APIとシングルページアプリケーションの台頭は、JSONが繁栄する完璧な環境を作り出しました。Webアプリケーションがデータを非同期的に取得し、クライアント側でレンダリングするように移行するにつれて、開発者はJavaScriptが容易に扱える形式を必要としていました。JSONがその形式でした。 今日、JSONはあらゆる場所にあります。ほぼすべてのWeb APIのレスポンス形式です。MongoDBやCouchDBなどのドキュメントデータベースのストレージ形式です。Node.jsパッケージ(package.json)、TypeScript(tsconfig.json)、VS Code設定、その他無数のツールの設定形式です。JSONを学ぶことは単に有用なだけでなく、現代のソフトウェア開発には不可欠です。

ツールを試す

JSONフォーマッター

JSONフォーマッター

関連記事