簡単な説明:
JSON (JavaScript Object Notation) は軽量のデータ交換形式です。これは、JavaScript のサブセット (標準 ECMA-262 第 3 版 - 1999 年 12 月) に基づいています。
JSON は完全に言語に依存しないテキスト形式を使用しますが、C 言語ファミリー (C、C++、C#、Java、JavaScript、Perl、Python などを含む) に似た規則も使用します。
これらの機能により、JSON は理想的なデータ交換言語になります。人間にとっては読み書きが簡単で、機械にとっては解析と生成が簡単です。
JSON 構文:
JSON 構文は JavaScript 構文のサブセットです。
JSON 文法ルール
データは名前と値のペアになっています
カンマ区切りのデータ
中括弧はオブジェクトを保存します
角括弧は配列を保存します
JSON 名/値ペア
JSON データの書き込み形式は、名前と値のペアです。
名前と値のペアは、フィールド名 (二重引用符で囲まれた)、コロン、値で構成されます:
1 |
"名":"ジョン" |
これは理解しやすく、次の JavaScript ステートメントと同等です:
1 |
名=「ジョン」 |
JSON値:
数値 (整数または浮動小数点数)
文字列 (二重引用符で囲む)
論理値 (true または false)
配列 (角括弧内)
オブジェクト (中括弧内)
ヌル
とXMLの比較:
1. 読みやすさ
JSON と XML の可読性は同等ですが、一方の構文は標準化されており、どちらが優れているかを区別するのは困難です。
2. スケーラビリティ
XML は当然ながら非常にスケーラブルであり、もちろん JSON も同様です。XML で拡張できて JSON で拡張できないものは何もありません。ただし、JSON は Javascript によく使用され、JavaScript 複合オブジェクトを格納できるため、xml とは比較にならない利点があります。
3. コーディングの難しさ
XMLにはDom4j、JDomなどのコーディングツールが豊富にあり、JSONにもツールが提供されています。ツールがなければ、熟練した開発者は目的の XML ドキュメントと JSON 文字列をすぐに作成できると思いますが、XML ドキュメントにはさらに多くの構造文字が必要です。
4. 解読の難易度
XML を解析するには 2 つの方法があります:
1 つ目は、ドキュメント モデルを介した解析、つまり、親タグを介して一連のタグのインデックスを作成することです。
例: xmlData.getElementsByTagName("tagName") ただし、これはドキュメント構造が事前にわかっており、普遍的にカプセル化できない場合に使用する必要があります。
もう 1 つの方法は、ノード (ドキュメントと子ノード) を走査することです。これは再帰によって実現できますが、解析されたデータは依然として異なる形式であり、多くの場合、事前要件を満たせません。
そのようなスケーラブルな構造化データは解析が非常に難しいはずです。
JSON についても同様です。 JSON 構造を事前に知っていれば、データ転送に JSON を使用すると、非常に実用的で美しく読みやすいコードを作成できます。あなたが純粋なフロントエンド開発者であれば、間違いなく JSON をとても気に入るはずです。しかし、あなたがアプリケーション開発者であれば、それはあまり好きではありません。結局のところ、xml はデータ転送に使用される実際の構造化マークアップ言語です。
そして、JSON の構造を知らずに JSON を解析すると、それは悪夢になるでしょう。時間と労力がかかるだけでなく、コードが冗長で長引き、得られる結果も満足のいくものとはなりません。しかし、これは JSON を選択する多くのフロントエンド開発者には影響しません。 json.jsのtoJSONString()でJSONの文字列構造が見えるからです。もちろんこの文字列は使用しませんが、それでも悪夢です。 JSON をよく使う人はこの文字列を見れば JSON の構造がよく分かり、JSON の操作が容易になります。
上記はJavaScriptでのデータ送信のみのxmlとJSONの解析です。 Javascript の分野では、結局のところ JSON が本場であり、その利点はもちろん XML よりもはるかに優れています。 Javascript 複合オブジェクトが JSON に格納され、その構造が不明であれば、多くのプログラマも JSON を解析するときに泣くことになると思います。
上記に加えて、JSON と XML のもう 1 つの大きな違いは、実効データ レートです。 JSON はデータ パケット形式で送信するとより効率的です。これは、JSON が XML のような厳密な終了タグを必要としないためです。これにより、総データ パケットに対する有効データ量の比率が大幅に増加し、同じデータ トラフィックが削減されます。ネットワークの。