Rumah  >  Artikel  >  hujung hadapan web  >  Analisis perbandingan kelebihan dan kekurangan JSON dan XML_json

Analisis perbandingan kelebihan dan kekurangan JSON dan XML_json

WBOY
WBOYasal
2016-05-16 15:49:551216semak imbas

1. Pengenalan definisi

1.1 takrif XML

Bahasa Penanda Boleh Diperluas (XML), bahasa penanda yang digunakan untuk menandai dokumen elektronik untuk menjadikannya berstruktur. Ia boleh digunakan untuk menanda data dan mentakrifkan jenis data yang membolehkan pengguna menentukan bahasa sumber mereka sendiri . XML menggunakan definisi jenis dokumen DTD (definisi jenis dokumen) untuk menyusun data, format yang disatukan, merentas platform dan bahasa, dan telah lama menjadi standard yang diiktiraf dalam industri.
XML ialah subset Bahasa Penanda Umum Standard (SGML) dan sangat sesuai untuk pengangkutan Web. XML menyediakan kaedah bersatu untuk menerangkan dan menukar data berstruktur bebas daripada aplikasi atau vendor.

1.2 takrif JSON

JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang mudah dibaca dan mudah ditulis dengan cepat. Pertukaran data antara platform yang berbeza adalah mungkin. JSON menggunakan format teks yang sangat serasi dan bebas bahasa sepenuhnya, dan juga mempunyai tingkah laku yang serupa dengan tabiat bahasa C (termasuk C, C, C#, Java, JavaScript, Perl, Python, dll.). Sifat ini menjadikan JSON sebagai bahasa pertukaran data yang ideal.
JSON adalah berdasarkan Bahasa Pengaturcaraan JavaScript, subset Standard ECMA-262 Edisi Ke-3 - Disember 1999.

2. Kelebihan dan keburukan XML dan JSON

2.1 Kelebihan dan Kelemahan XML

Kelebihan XML
A. Format disatukan dan mematuhi piawaian
B. Mudah untuk berinteraksi dari jauh dengan sistem lain, dan perkongsian data lebih mudah.

Kelemahan XML
Fail A.XML adalah besar, format fail adalah rumit, dan penghantaran menggunakan lebar jalur; B. Kedua-dua pelayan dan pelanggan perlu menghabiskan banyak kod untuk menghuraikan XML, menyebabkan pelayan dan kod klien menjadi sangat kompleks dan sukar untuk diselenggarakan; C. Cara menghuraikan XML antara penyemak imbas yang berbeza pada sisi klien adalah tidak konsisten, dan banyak kod perlu ditulis berulang kali
D. Pelayan dan pelanggan menghabiskan lebih banyak sumber dan masa menghuraikan XML.

2.2 Kelebihan dan Kekurangan JSON


Kelebihan JSON:


A. Format data agak ringkas, mudah dibaca dan ditulis, formatnya dimampatkan dan menggunakan lebar jalur yang sedikit; B. Mudah dihuraikan, JavaScript sisi klien hanya boleh membaca data JSON melalui eval(); C. Menyokong berbilang bahasa, termasuk ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby dan bahasa sebelah pelayan yang lain untuk memudahkan penghuraian sebelah pelayan

D. Dalam dunia PHP, PHP-JSON dan JSON-PHP adalah lebih baik untuk memanggil program bersiri PHP secara langsung, tatasusunan, dan lain-lain boleh menjana format JSON untuk memudahkan akses dan pengekstrakan pelanggan ;

E. Oleh kerana format JSON boleh digunakan secara langsung oleh kod bahagian pelayan, ia sangat memudahkan pembangunan kod bahagian pelayan dan bahagian klien, dan tugas itu kekal tidak berubah dan mudah diselenggara.


Kelemahan JSON

A. Ia tidak begitu popular dan digunakan secara meluas seperti format XML, dan ia tidak serba boleh seperti XML

B. Promosi format JSON dalam Perkhidmatan Web masih di peringkat awal.

3. Perbandingan kebaikan dan keburukan XML dan JSON

Dari segi kebolehbacaan.

Kebolehbacaan data JSON dan XML pada asasnya adalah sama Kebolehbacaan JSON dan XML adalah hampir sama.


Dari segi kebolehskalaan.


XML secara semula jadi sangat berskala, dan JSON pastinya juga mempunyainya. Tiada apa yang XML boleh kembangkan yang tidak boleh JSON.


Dari segi kesukaran pengekodan.


XML mempunyai banyak alat pengekodan, seperti Dom4j, JDom, dll., dan JSON juga mempunyai alat yang disediakan oleh json.org Walau bagaimanapun, pengekodan JSON jelas lebih mudah daripada XML Anda boleh menulis kod JSON walaupun tanpa menggunakan alat, tetapi anda perlu menulis XML yang Baik bukanlah mudah.


Kesukaran penyahkodan.


Penghuraian XML perlu mengambil kira nod anak dan nod induk, yang membuatkan orang pening, manakala kesukaran menghuraikan JSON adalah hampir 0. XML tidak kehilangan apa-apa pada ketika ini.


Kepopularan.


XML telah digunakan secara meluas dalam industri, manakala JSON baru sahaja bermula, bagaimanapun, dalam bidang khusus Ajax, pembangunan masa depan mestilah XML memberi laluan kepada JSON. Pada masa itu Ajax harus menjadi Ajaj (Asynchronous Javascript dan JSON).


Dari segi kaedah analisis.


JSON dan XML juga mempunyai kaedah penghuraian yang kaya.


Dari segi volum data.


Berbanding XML, JSON mempunyai saiz data yang lebih kecil dan kelajuan penghantaran yang lebih pantas.


Interaksi data.


Interaksi antara JSON dan JavaScript lebih mudah, lebih mudah untuk dihuraikan dan diproses serta menyediakan interaksi data yang lebih baik.


Penerangan data.


JSON kurang deskriptif data berbanding XML.


Kelajuan penghantaran.


JSON jauh lebih pantas daripada XML.


4. Perbandingan format data XML dan JSON

4.1 Mengenai ringan dan berat

Lightweight dan heavy ialah istilah relatif, jadi di manakah wajaran berat XML berbanding JSON Ia sepatutnya ditunjukkan dalam penghuraian XML pada masa ini direka dengan dua kaedah penghuraian: DOM dan SAX.

DOM

DOM menganggap XML format pertukaran data sebagai objek DOM, dan keseluruhan fail XML perlu dibaca ke dalam ingatan Prinsip JSON dan XML adalah sama dalam hal ini, tetapi XML mesti mempertimbangkan nod induk dan nod anak . JSON jauh lebih sukar untuk dihuraikan kerana JSON dibina pada dua struktur: kunci/nilai, koleksi pasangan nilai-kunci, yang boleh difahami sebagai tatasusunan;

SAX

SAX boleh memproses kandungan yang dihuraikan tanpa membaca keseluruhan dokumen Ia adalah kaedah penghuraian langkah demi langkah. Program ini juga boleh menamatkan penghuraian pada bila-bila masa. Dengan cara ini, dokumen besar boleh dipaparkan secara beransur-ansur dan sedikit demi sedikit, jadi SAX sesuai untuk penghuraian berskala besar. Ini tidak boleh dilakukan pada masa ini dengan JSON.

Oleh itu, perbezaan ringan/berat antara JSON dan XML ialah:
JSON hanya menyediakan penyelesaian penghuraian keseluruhan dan kaedah ini hanya boleh mencapai hasil yang baik apabila menghuraikan kurang data
XML menyediakan penyelesaian penghuraian langkah demi langkah untuk data berskala besar, yang sangat sesuai untuk memproses sejumlah besar data.

4.2 Berkenaan kesukaran pengekodan dan penghuraian format data

Dari segi pengekodan.


Walaupun XML dan JSON mempunyai alat pengekodan mereka sendiri, pengekodan JSON lebih mudah daripada XML Anda boleh menulis kod JSON walaupun tanpa bantuan alat, tetapi agak sukar untuk menulis kod XML yang baik juga berasaskan teks, dan semuanya menggunakan pengekodan Unicode, dan ia mempunyai ciri yang sama seperti format pertukaran data XML

Kebolehbacaan.


Secara subjektif, JSON adalah lebih jelas dan kurang berlebihan. Tapak web JSON menyediakan penerangan yang ketat, jika ringkas, tentang sintaks JSON. Secara umumnya, XML lebih sesuai untuk menandakan dokumen, manakala JSON lebih sesuai untuk pemprosesan pertukaran data.


Dari segi penghuraian.


Dalam bidang aplikasi web biasa, pembangun sering bergelut dengan penghuraian XML sama ada ia menjana atau memproses XML pada bahagian pelayan, atau menghuraikan XML pada bahagian klien menggunakan JavaScript, ia sering menghasilkan kod yang kompleks dan pembangunan yang sangat rendah. kecekapan.

Malah, untuk kebanyakan aplikasi Web, mereka tidak memerlukan XML yang kompleks untuk menghantar data sama sekali Kebolehlanjutan yang dituntut oleh XML jarang mempunyai kelebihan di sini, malah banyak aplikasi Ajax mengembalikan serpihan HTML untuk membina halaman Web dinamik. Berbanding dengan mengembalikan XML dan menghuraikannya, mengembalikan serpihan HTML sangat mengurangkan kerumitan sistem, tetapi ia juga tidak mempunyai tahap fleksibiliti tertentu. Format pertukaran data JSON memberikan kesederhanaan dan fleksibiliti yang lebih besar daripada serpihan XML atau HTML. Dalam aplikasi Perkhidmatan Web, sekurang-kurangnya buat masa ini, XML masih mempunyai kedudukan yang tidak tergoyahkan.

Contoh perbandingan


Kedua-dua XML dan JSON menggunakan kaedah berstruktur untuk menandai data Mari buat perbandingan ringkas di bawah.

Data beberapa wilayah dan bandar di China diwakili dalam XML seperti berikut:

<&#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>
Gunakan JSON untuk mewakili data beberapa wilayah dan bandar di China seperti berikut:

 var country =
    {
      name: "中国",
      provinces: [
      { name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
      { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} },
      { name: "台湾", citys: { city: ["台北", "高雄"]} },
      { name: "新疆", citys: { city: ["乌鲁木齐"]} }
      ]
    }
Dari segi kebolehbacaan pengekodan, XML mempunyai kelebihan yang jelas Lagipun, bahasa manusia lebih dekat dengan struktur penerangan sedemikian. JSON membaca lebih seperti blok data dan lebih mengelirukan untuk dibaca. Walau bagaimanapun, bahasa yang sukar untuk kita baca adalah sesuai untuk bacaan mesin, jadi nilai "Heilongjiang" boleh dibaca melalui indeks JSON country.provinces[0].name.


Dari segi kesukaran menulis pengekodan, XML lebih selesa untuk dibaca dan sudah tentu mudah untuk ditulis. Walau bagaimanapun, aksara JSON bertulis jelas lebih kurang. Jika anda mengalih keluar tab kosong dan pemisah baris, JSON padat dengan data berguna, manakala XML mengandungi banyak aksara penanda berulang.

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn