ホームページ  >  記事  >  ウェブフロントエンド  >  JSONとXMLの使い方を詳しく解説

JSONとXMLの使い方を詳しく解説

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-25 17:18:211317ブラウズ

今回は、JSON と XML の使用について詳しく説明します。JSON と XML を使用する際の 注意事項 は何ですか?実際の事例を見てみましょう。

1. 定義の紹介

1.1 XML 定義

拡張マークアップ言語 (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 を解析する方法に一貫性がなく、多くのコードを繰り返し記述する必要がある
C. XML を解析するためにより多くのリソースと時間がかかる。サーバー側とクライアント側で。

2.2 JSON の利点と欠点

JSON の利点:

A. データ形式は比較的シンプルで、読み書きが簡単で、形式は圧縮されており、占有帯域幅もほとんどありません

B. 簡単です。 eval() を介して JSON データを読み取る
C. ActionScript、C、C#、ColdFusion、Java、JavaScript、Perl、PHP、Python、Ruby およびその他のサーバーを含む複数の言語をサポートします。サーバー側の解析を容易にするためのサイド言語。
D. PHP の世界では、PHP のシリアル化されたプログラム、サーバー側のオブジェクト、配列などを直接呼び出すことが推奨されています。 . JSON 形式を直接生成して、クライアントのアクセスと抽出を容易にすることができます。
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 よりも簡単に記述できます。 XML はそれほど簡単ではありません。

解読の難易度の側面。

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

人気。

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

分析手法に関して。

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

データ量の観点から。

XMLと比較して、JSONはデータサイズが小さく、通信速度が速いです。

データインタラクション。

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

データの説明。

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

通信速度。

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

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

4.1 軽量と重量について

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

DOM

DOM は、データ交換形式の XML を DOM オブジェクト として扱います。この点では、JSON と XML の原則は同じですが、XML では考慮する必要があります。親ノードと子ノードの場合、JSON は 2 つの構造に基づいて構築されているため、この時点では解析ははるかに困難ではありません。配列;

SAX

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 を使用して、次のように中国の一部の省および都市のデータを表します:

<?xml version="1.0" encoding="utf-8" ?>
<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: ["乌鲁木齐"]} }
      ]
    }
エンコードの可読性の観点からは、XML は明らかに優れています。結局のところ、人間の言語はそのような構造に近いのです。 JSON はデータ ブロックに近いため、読むのがさらにわかりにくくなります。ただし、私たちにとって読みにくい言語は機械の読み取りに適しているため、値「黒龍江省」は JSON インデックス country.provinces[0].name を通じて読み取ることができます。

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

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

jsonp+json は AJAX クロスドメインリクエストを実装します

Jsonp はどのようにして Ajax クロスドメインを解決できるか

以上がJSONとXMLの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。