jsonとxmlの概要


jsonとxml
  • 前言
  • 一、json
  • 1. 紹介
  • 2. 利点
  • 3. 欠点
  • 二、xml
  • 1.紹介
  • 2. 利点
  • 3.欠点
  • 三、両者の対比
  • 1.メリットとデメリットの比較
  • 2.データフォーマット比較
  • (1).軽量レベルと重量レベル
  • について
  • (2).データフォーマット符号化及び解析難易度
  • について
  • (3).インスタンス比較


  • 前言
    分析:XMLとJsonはすべてデータ伝送の担体として、すべてプラットフォームを越える能力と強い拡張性を持って、本文は主に両者の特徴と優劣を討論します.
    一、json
    1.紹介
    JSON(JavaScript Object Notation)は軽量レベルのデータ交換フォーマットであり、読みやすさと書きやすい特性を備えています.より高い互換性を持つため、言語テキストフォーマットと比較的完全な体系から完全に独立して理想的なデータ交換言語となり、またJSONも機械的な解析と生成を容易にし、C言語ファミリーに似た習慣(C,C+,C#,Java,JavaScript,Perl,Pythonなどを含む)を使用した.
    2.メリット
    (1)データフォーマットが簡単で、圧縮タイプのフォーマットを採用して、読み書きが容易で、占有帯域幅が小さい;(2)解析が容易で、クライアントJavaScriptは簡単にeval_r()を通じてJSONデータの読み取りを行うことができる;(3)ActionScript,C,C#,ColdFusion,Java,JavaScript,Perl,PHP,Python,Rubyなどの複数言語をサポートし、サーバ側の解析を容易にする.(5)PHPの世界では,既にPHP-JSONとJSON-POPが出現しており,PHPのシーケンス化後のプログラムの直接呼び出しが容易である.PHPサーバ側のオブジェクト,配列などはJSON形式を直接生成することができ,クライアントのアクセス抽出が容易である.またPHPのPEAR類は既にサポートされている.http://pear.php.net/pepr/pepr-proposal-show.php?id=198)
    3.短所
    (1)xmlほど汎用性がなく、まだ広く普及していない.
    二、xml
    1.紹介
    拡張タグ言語(Extensible Markup Language,XML)は、電子ファイルを構造的にタグ付けするタグ言語であり、データをタグ付けしたり、データ型を定義したりすることができ、ユーザーが自分のタグ言語を定義できるソース言語である.XMLは標準的な汎用タグ言語(SGML)のサブセットであり,Web伝送に非常に適している.XMLは、アプリケーションまたはベンダーとは独立した構造化データを記述および交換するための統一的な方法を提供する.
    2.メリット
    (1)フォーマットが統一され、標準に合致する.(2)他のシステムと遠隔で対話しやすく、データ伝送が便利である.
    3.短所
    (1)XMLファイルは膨大で、ファイルフォーマットは複雑で、伝送は帯域幅を占めている.(2)サーバ側とクライアント側はXMLを解析するために大量のコードを費やす必要があり、サーバ側とクライアントコードが異常に複雑になり、メンテナンスしにくい.(3)クライアントの異なるブラウザ間でXMLを解析する方法が一致せず、多くのコードを繰り返し書く必要がある.(4)サーバ側とクライアントがXMLを解析するのに多くのリソースと時間がかかる.
    三、両者の対比
    1.メリットとデメリットの比較
    (1).可読性の面.JSONとXMLのデータの可読性は基本的に同じで、JSONとXMLの可読性は同じで、提案された文法でありながら、規範的なラベル形式であり、XMLの可読性は比較的よい.(2).拡張性の面.XMLは生まれながらにして良い拡張性があり、JSONももちろんありますが、XMLが拡張できるものは何もありません.JSONはできません.(3).コーディングの難易度.XMLにはDom 4 j、JDomなど豊富な符号化ツールがあり、JSONにもjsonがある.orgが提供するツールですが、JSONの符号化は明らかにXMLよりずっと簡単で、ツールを借りなくてもJSONのコードを書くことができますが、XMLを書くのは容易ではありません.(4).復号の難易度.XMLの解析は子ノードの親ノードを考慮して頭がくらくらするが,JSONの解析はほぼ0である.この点XMLが負けたのは本当に話がない.(5).流行度の面.XMLはすでに業界で広く使われているが、JSONは始まったばかりだが、Ajaxという特定の分野では、将来の発展はXMLがJSONに位置させるに違いない.AjaxはAjaj(Asynchronous Javascript and JSON)になるはずです.(6).解析手段の面.JSONはXMLと同様に解析手段が豊富である.(7).データボリュームの面.JSONはXMLに比べてデータの体積が小さく,伝達速度が速い.(8).データインタラクション.JSONとJavaScriptのインタラクションはより便利で、解析処理が容易で、データインタラクションがより良い.(9).データ記述の態様.JSONはデータの記述性がXMLより劣っている.(10).伝送速度の面.JSONの速度はXMLよりはるかに速い.
    2.データフォーマット比較
    (1).軽量級とヘビー級について
    軽量級と重量級は相対的に言えば、XMLのJSONに対する重量級はどこに現れているのだろうか.解析に反映されるべきで、XMLは現在2つの解析方式を設計している:DOMとSAX.<1>.DOM DOMは、データ交換フォーマットXMLをDOMオブジェクトと見なし、XMLファイル全体をメモリに読み込む必要がある点でJSONとXMLの原理は同じですが、XMLは親ノードと子ノードを考慮しなければなりません.この点でJSONの解析は難しいです.JSONは2つの構造に構築されているからです.key/value、キー値ペアの集合;値の秩序化された集合は、配列として理解されます.<2>.SAX SAXはドキュメント全体を読み込むことなく解析した内容を処理することができ,逐次解析する方法である.プログラムは解析をいつでも終了することもできます.これにより、大きなドキュメントが徐々に、少しずつ表示されるので、SAXは大規模な解析に適しています.この点、JSONは現在できません.したがって、JSONとXMLの軽量/重量級の違いは、JSONは全体的な解析スキームを提供するだけで、この方法は少ないデータを解析する場合にのみ良好な効果を果たすことができる.XMLは大規模なデータの逐次解析スキームを提供し,このスキームは大量のデータの処理に適している.
    (2).データフォーマットの符号化と解析の難易度について
    <1>.符号化の面で.XMLとJSONにはそれぞれの符号化ツールがあるが、JSONの符号化はXMLよりも簡単で、ツールを借りなくてもJSONコードを書くことができるが、良いXMLコードを書くのは少し難しい.JSONはXMLと同様にテキストベースであり、Unicode符号化を使用しており、データ交換フォーマットXMLと同様に可読性がある.主観的に見ると、JSONはもっとはっきりしていて、冗長性はもっと少ないです.JSONのウェブサイトはJSONの文法の厳格な説明を提供して、ただ説明が短いだけです.全体的に、XMLはタグドキュメントに適しているが、JSONはデータ交換処理に適している.<2>.解析の面で.一般的なウェブアプリケーションの分野では、開発者はXMLの解析に頭を悩ませ、サーバ側がXMLを生成したり処理したりしても、クライアントがJavaScriptでXMLを解析したりしても、複雑なコードを招き、開発効率が極めて低いことが多い.実際、多くのWebアプリケーションにとって、複雑なXMLを必要とせず、XMLが主張する拡張性はここではあまり優位性がなく、多くのAjaxアプリケーションはHTMLクリップに直接戻って動的Webページを構築することもできます.XMLを返して解析するのに比べて、HTMLフラグメントを返すことはシステムの複雑さを大幅に低減しますが、柔軟性が欠けています.データ交換フォーマットJSONは、XMLまたはHTMLフラグメントと比較して、より単純性と柔軟性を提供します.Web Seriviceアプリケーションでは、少なくとも現在のところXMLは揺るぎない地位にある.
    (3).インスタンス比較
    XMLとJSONはいずれも構造化手法を用いてデータをマークし,以下で簡単な比較を行う.
    <1>.JSONで中国の一部の省・市のデータは以下の通りである.
    var country =
            {
         
                name: "  ",
                provinces: [
                {
          name: "   ", citys: {
          city: ["   ", "  "]} },
                {
          name: "  ", citys: {
          city: ["  ", "  ", "  "]} },
                {
          name: "  ", citys: {
          city: ["  ", "  "]} },
                {
          name: "  ", citys: {
          city: ["    "]} }
                ]
            }
    

    <2>.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>
    
    中国黒竜江省ハルビン大慶広東広州深セン珠海台湾台北高雄新疆ウルムチ#総括コードの可読性にとって、XMLは明らかな優位性があり、結局人類の言語はこのような説明構造に近い.JSONの方が1つのブロックに似ているので、読むのが難しいです.しかし、私たちが読むのが難しい言語は、ちょうど機械が読むのに適しているので、JSONのインデックスcountryを通じています.provinces[0].nameは「黒龍江」という値を読み取ることができます.コードの手書きの難易度は、XMLは少し快適で、読みやすくてもちろん書きやすいです.しかし、文字JSONは明らかに少ない.空白のタブや改行を外すとJSONは密な有用なデータであり,XMLには重複するタグ文字が多く含まれている.
    参照リンク:https://blog.csdn.net/sanpintian/article/details/7347711 http://blog.sina.com.cn/s/blog_8a30865f0101amjh.html