JSONとXML_jsonの長所と短所の比較分析

WBOY
リリース: 2016-05-16 15:49:55
オリジナル
1175 人が閲覧しました

1. 定義の紹介

1.1 XML 定義

Extensible Markup Language (XML) は、電子ドキュメントをマークして構造化するために使用されるマークアップ言語で、ユーザーが独自のソース言語を定義できるようにします。 。 XML は、DTD (ドキュメント タイプ定義) ドキュメント タイプ定義を使用してデータを整理します。この形式は、プラットフォームおよび言語に依存せずに統一されており、長い間業界で標準として認識されてきました。
XML は標準一般化マークアップ言語 (SGML) のサブセットであり、Web トランスポートに適しています。 XML は、アプリケーションやベンダーに依存せずに構造化データを記述および交換するための統一された方法を提供します。

1.2 JSON 定義

JSON (JavaScript Object Notation) は、読みやすく、素早く書きやすい軽量のデータ交換形式です。異なるプラットフォーム間でのデータ交換が可能です。 JSON は、互換性が高く、完全に言語に依存しないテキスト形式を採用しており、C 言語の習慣 (C、C、C#、Java、JavaScript、Perl、Python などを含む) と同様の動作をします。これらの特性により、JSON は理想的なデータ交換言語になります。
JSON は、標準 ECMA-262 第 3 版 (1999 年 12 月) のサブセットである JavaScript プログラミング言語に基づいています。

2. XML と JSON の長所と短所

2.1 XML の長所と短所

XML の利点
A. 形式は統一されており、標準に準拠しています。 B. 他のシステムとリモートで対話するのが簡単で、データ共有がより便利です。

XML の欠点

A.XML ファイルは巨大で、ファイル形式が複雑で、送信には帯域幅が消費されます。 B. サーバーとクライアントの両方が XML を解析するために大量のコードを費やす必要があるため、サーバーとクライアントのコードが非常に複雑になり、保守が困難になります。
C. クライアント側の異なるブラウザ間で XML を解析する方法に一貫性がなく、多くのコードを繰り返し記述する必要があります。 D. サーバーとクライアントは、XML の解析により多くのリソースと時間を費やします。


2.2 JSON の長所と短所

JSON の利点:

A. データ形式は比較的シンプルで、読み書きが簡単で、圧縮されており、帯域幅をほとんど消費しません。 B. 解析が簡単で、クライアント側の JavaScript は eval()
を通じて JSON データを読み取ることができます。 C. サーバー側の解析を容易にするために、ActionScript、C、C#、ColdFusion、Java、JavaScript、Perl、PHP、Python、Ruby およびその他のサーバー側言語を含む複数の言語をサポートします。 D. PHP の世界では、PHP-JSON および JSON-PHP がすでに登場しており、PHP のサーバー側オブジェクト、配列などを直接呼び出して、クライアントのアクセスと抽出を容易にすることができます。 ;

E. JSON 形式はサーバー側コードで直接使用できるため、サーバー側とクライアント側のコード開発が大幅に簡素化され、タスクは変更されず、保守が容易です。



JSON の欠点


A. XML 形式ほど人気も広く使用されておらず、XML ほど汎用性も高くありません。 B. Web サービスにおける JSON 形式の推進はまだ初期段階にあります。


3. XML と JSON の長所と短所の比較


読みやすさの観点から。

JSON と XML のデータの可読性は基本的に同じです。一方で、JSON と XML の可読性はほぼ同じであり、もう一方では、標準化されたタグ形式の方が可読性が高くなります。

スケーラビリティの観点から。

XML はもともと非常にスケーラブルであり、JSON にも確かにスケーラビリティがあります。XML で拡張できて JSON で拡張できないものは何もありません。

コーディングの難しさの観点から。

XML には Dom4j、JDom などの豊富なエンコード ツールがあり、JSON にも json.org が提供するツールがあります。ただし、JSON エンコードは明らかに XML を使用しなくても JSON コードを作成できます。ツールはありますが、適切な XML を作成する必要があります。

解読の難しさ。

XML の解析では子ノードと親ノードを考慮する必要があるためめまいがしますが、JSON の解析の難易度はほぼ 0 です。この時点では、XML が失うものは何もありません。

人気。

XML は業界で広く使用されていますが、JSON は始まったばかりですが、Ajax の特定の分野では、今後の発展は XML から JSON に取って代わられるはずです。それまでに、Ajax は Ajaj (非同期 Javascript および JSON) になるはずです。

分析手法に関して。

JSON と XML にも豊富な解析メソッドがあります。

データ量に関して。

JSON は XML に比べてデータサイズが小さく、送信速度が速いです。

データのやり取り。

JSON と JavaScript の間の対話はより便利で、解析と処理が容易になり、より優れたデータ対話が可能になります。

データの説明。

JSON は XML よりもデータの記述が少ないです。

通信速度。

JSON は XML よりもはるかに高速です。


4. XML と JSON データ形式の比較


4.1 ライトウェイトとヘビーウェイトについて

軽量と重量は相対的な用語です。では、JSON と比較して XML の重量はどこにあるのでしょうか? XML は現在、DOM と SAX の 2 つの解析方法で設計されています。

ドム

DOM はデータ交換形式 XML を DOM オブジェクトとして扱い、XML ファイル全体をメモリに読み込む必要があります。この点では JSON と XML の原則は同じですが、XML は親ノードと子ノードを考慮する必要があります。 . JSON は、キーと値のペアのコレクションであるキー/値、配列として理解できる値のコレクションという 2 つの構造で構築されているため、解析はそれほど難しくありません。

サックス

SAX は、文書全体を読み取ることなく、解析されたコンテンツを処理できます。これは段階的な解析方法です。プログラムはいつでも解析を終了することができます。このように、大きな文書を少しずつ段階的に表示できるため、SAX は大規模な解析に適しています。現在、これは JSON では不可能です。

したがって、JSON と XML の軽量/重量の違いは次のとおりです。
JSON は全体的な解析ソリューションのみを提供しており、この方法では解析するデータが少ない場合にのみ良好な結果が得られます。 XML は、大規模データに対する段階的な解析ソリューションを提供し、大量のデータの処理に非常に適しています。

4.2 データ形式のエンコードと解析の難しさについて


コーディングの観点から。


XML と JSON には独自のエンコード ツールがありますが、JSON エンコードは XML よりも簡単です。ツールを使用しなくても JSON コードを作成できますが、XML や JSON と同じように適切なコードを作成するのは少し困難です。これもテキストベースであり、すべて Unicode エンコーディングを使用しており、データ交換形式 XML

と同じ特性を持っています。

読みやすさ。


主観的に言えば、JSON の方が明確で冗長性が低いです。 JSON Web サイトでは、JSON 構文の簡潔ではあるが厳密な説明が提供されています。一般に、XML はドキュメントのマーク付けに適しており、JSON はデータ交換処理に適しています。


解析に関して。


通常の Web アプリケーションの分野では、サーバー側で XML を生成または処理する場合でも、JavaScript を使用してクライアント側で XML を解析する場合でも、開発者は XML 解析に苦労することが多く、コードが複雑になり、開発効率が大幅に低下することがよくあります。効率。

実際、ほとんどの Web アプリケーションでは、データを送信するために複雑な XML はまったく必要ありません。XML が主張する拡張性がここで有利になることはほとんどありません。多くの Ajax アプリケーションは、動的 Web ページを構築するために HTML フラグメントを直接返すことさえあります。 XML を返して解析する場合と比較して、HTML フラグメントを返すとシステムの複雑さは大幅に軽減されますが、ある程度の柔軟性にも欠けます。データ交換形式 JSON は、XML や HTML フラグメントよりも優れたシンプルさと柔軟性を提供します。 Web サービス アプリケーションでは、少なくとも現時点では、XML は依然として揺るぎない地位を占めています。



比較例


XML と JSON はどちらも構造化メソッドを使用してデータをマークします。以下で簡単に比較してみましょう。

中国の一部の省と都市のデータは、次のように XML で表現されます:


<&#63;xml version="1.0" encoding="utf-8" &#63;>
<country>
 <name>中国</name>
 <province>
  <name>黑龙江</name>
  <citys>
   <city>哈尔滨</city>
   <city>大庆</city>
  </citys>   
 </province>
 <province>
  <name>广东</name>
  <citys>
   <city>广州</city>
   <city>深圳</city>
   <city>珠海</city>
  </citys>   
 </province>
 <province>
  <name>台湾</name>
  <citys>
    <city>台北</city>
    <city>高雄</city>
  </citys> 
 </province>
 <province>
  <name>新疆</name>
  <citys>
   <city>乌鲁木齐</city>
  </citys>
 </province>
</country>
ログイン後にコピー
JSON を使用して、次のように中国の一部の省と都市のデータを表します:

 var country =
    {
      name: "中国",
      provinces: [
      { name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
      { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} },
      { name: "台湾", citys: { city: ["台北", "高雄"]} },
      { name: "新疆", citys: { city: ["乌鲁木齐"]} }
      ]
    }
ログイン後にコピー
コーディングの可読性という点では、結局のところ、人間の言語はそのような記述構造に近いのです。 JSON はデータ ブロックに近いため、読むのがさらにわかりにくくなります。ただし、私たちにとって読みにくい言語は機械の読み取りに適しているため、値「黒龍江省」は JSON インデックス country.provinces[0].name を通じて読み取ることができます。


コーディングの手書きの難しさという点では、XML の方が読みやすく、もちろん書きやすいです。ただし、記述される JSON 文字は明らかに大幅に少なくなります。空白のタブと改行を削除すると、JSON には有用なデータが密に詰め込まれますが、XML には繰り返しマークアップ文字が多数含まれます。

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!