Jawaban:
Mendukung XML daripada JSON ketika semua ini benar:
Mendukung JSON daripada XML ketika semua ini benar:
Saya menggunakan JSON kecuali saya harus menggunakan XML. Ini lebih mudah dipahami, dan (karena membutuhkan lebih sedikit konfigurasi overhead) lebih mudah untuk memprogram untuk membaca dan menulis jika perpustakaan tersedia dalam konteks Anda, dan mereka sekarang ada di mana-mana.
Ketika Amazon pertama kali mengekspos katalog mereka sebagai layanan web, mereka menawarkan JSON dan XML. Sekitar 90% pelaksana memilih JSON.
Mempertimbangkan kasus spesifik Anda di mana Anda sudah melakukan javascript di sisi klien, saya akan menggunakan JSON karena alasan berikut:
Karena JSON adalah asli untuk javascript Anda harus menulis lebih sedikit kode di sisi klien - Hanya eval()
(atau, lebih baik lagi JSON.parse()
), string JSON dan dapatkan objek yang dapat Anda gunakan.
Pada saat yang sama mengevaluasi JSON di sisi klien akan lebih efisien, dan karenanya lebih cepat.
Serialisasi JSON menghasilkan string yang lebih pendek dari XML. Menggunakan JSON akan mengurangi jumlah data yang berjalan lintas kabel dan meningkatkan kinerja dalam hal itu.
Inilah beberapa bacaan lebih lanjut: http://www.subbu.org/blog/2006/08/json-vs-xml
eval()
ing JSON besar tidak-tidak?
Beberapa hal lain yang saya temui di relm XML vs JSON:
JSON sangat baik untuk
Yang artinya cenderung menyukai array atau array bersarang. Namun JSON tidak memiliki keduanya
Jadi, jika Anda menggabungkan dua atau lebih layanan JSON, mungkin ada potensi konflik namespace. Itu dikatakan JSON dapat digunakan untuk sekitar 90% dari hal-hal yang sama dengan XML dapat digunakan ketika bertukar data dalam pengalaman saya.
Biasanya JSON lebih ringkas, dan lebih cepat diurai.
Lebih suka XML jika:
Satu kasus penting dari (hampir) XML: mencoba mendeteksi ketika mengirim cuplikan HTML lebih menguntungkan daripada mengirim data mentah. AHAH dapat melakukan keajaiban dalam aplikasi sederhana, namun sering diabaikan. Biasanya gaya ini mengasumsikan bahwa server mengirimkan cuplikan HTML yang akan diuraikan dalam halaman web tanpa diproses.
Biasanya dalam kasus AHAH, CSS ditingkatkan dengan maksimal untuk memijat cuplikan secara visual dan menerapkan persyaratan sederhana seperti menyembunyikan / menampilkan bagian relevan cuplikan menggunakan pengaturan khusus pengguna atau aplikasi khusus.
JSON mudah dan cepat untuk diurai. XML sedikit lebih sulit diurai, dan lebih lambat untuk diurai dan ditransfer (dalam banyak kasus).
Karena Anda menggunakan jQuery, saya sarankan menggunakan JSON: jQuery dapat mengambil kembali data JSON dan mengubahnya menjadi objek Javascript secara otomatis. Bahkan, Anda bisa mengonversi data JSON menjadi objek Javascript menggunakan eval . XML harus ditransformasikan secara manual oleh Anda (Saya tidak tahu bagaimana ini bekerja dalam Javascript, tetapi sulit / lebih menyebalkan di sebagian besar bahasa yang saya gunakan dengan perpustakaan XML).
JSON selalu lebih disukai dalam hal pemrosesan yang harus dilakukan browser klien untuk mem-parsing data. Juga, JSON adalah format pertukaran data yang ringan.
Penguraian XML selalu menghabiskan banyak sumber daya peramban dan harus dihindari sebanyak yang kami bisa kecuali diminta sebaliknya.
Saya memiliki posting blog pada subjek yang merinci sejarah protokol web (yaitu SOAP, XML, JSON, REST, POX, dll) memberikan ringkasan serta beberapa kelebihan dan kekurangan masing-masing: http://www.servicestack.net / mythz_blog /? p = 154
Saya benar-benar berpikir Anda dapat menggambar banyak kesamaan antara XML dan JSON dengan membandingkan perbedaan antara bahasa dinamis (JSON) dan statis (XML).
Pada dasarnya XML adalah format serialisasi yang lebih ketat, lebih kaku yang secara opsional dapat diverifikasi dengan skema yang menyertainya (yang merupakan XSD atau DTD). XSD's sangat rumit dan memungkinkan Anda untuk menggambarkan berbagai jenis misalnya Tanggal, Waktu, Pencacahan, Jenis yang Ditetapkan Pengguna dan bahkan Jenis warisan, dll. SOAP secara efektif dibangun di atas rangkaian fitur XML yang menyediakan cara standar untuk menggambarkan layanan web Anda ( mis. tipe dan operasi) melalui WSDL. Vbositas dan kompleksitas dari spesifikasi WSDL berarti bahwa itu bisa lebih membosankan untuk dikembangkan dengan tetapi pada saat yang sama ada lebih banyak perkakas yang tersedia untuk Anda dan sebagian besar bahasa modern menyediakan alat otomatis untuk menghasilkan proksi klien Anda mengambil beberapa beban. off ketika mencoba untuk beroperasi dengan layanan eksternal.
Saya masih merekomendasikan menggunakan XML untuk layanan web Anda jika Anda memiliki 'layanan perusahaan' yang terdefinisi dengan baik yang tidak dapat sering berubah atau layanan web Anda perlu diakses dari berbagai bahasa.
Untuk semua manfaatnya XML hadir dengan kelemahan juga. Itu bergantung pada ruang nama untuk memberikan format yang dapat diperpanjang diketik dan memungkinkan Anda untuk menentukan atribut dan elemen dalam dokumen yang sama. Memiliki ruang nama yang berbeda dalam satu dokumen berarti banyak waktu ketika menggunakan Parser Xml untuk mengekstrak data, Anda juga perlu memberikan namespace dari setiap elemen yang ingin Anda ambil / lintasi. Ini juga meramalkan muatan sehingga membuatnya lebih bertele-tele dari yang seharusnya. Memiliki opsi untuk menampilkan atribut serta elemen berarti kelas Anda tidak memetakan dengan baik ke dokumen XML. Fitur-fitur ini saja membuatnya kurang terprogram untuk sebagian besar bahasa membuatnya lebih membosankan dan tidak praktis untuk digunakan.
JSON di sisi lain adalah kebalikan dari XML dalam banyak hal karena sangat longgar dan hanya memiliki dukungan sederhana untuk tipe dasar: Number, Bool, string, Objects and Arays. Segala sesuatu yang lain pada dasarnya harus muat dalam sebuah string. Ini tidak bagus ketika mencoba berkomunikasi lintas batas bahasa karena Anda harus mematuhi beberapa spesifikasi non-standar out-of-band jika Anda ingin mendukung jenis yang lebih spesifik. Pada sisi atas, set fitur terbatasnya membuat program terprogram dengan baik untuk sebagian besar bahasa - dan sangat cocok untuk JavaScript karena string JSON dapat dievaluasi secara langsung ke objek JavaScript.
Ukuran dan Performa
Saya memiliki beberapa tolok ukur database northwind yang tersedia membandingkan ukuran dan kecepatan antara Microsoft XML dan implementasi JSON. Pada dasarnya XML lebih dari 2x ukuran JSON tetapi pada saat yang sama tampak seolah-olah Microsoft berupaya keras dalam mengoptimalkan XML DataContractSerializer mereka karena lebih dari 30% lebih cepat daripada JSON mereka. Tampaknya Anda harus melakukan trade-off antara ukuran dan kinerja. Tidak senang dengan fakta ini, saya memutuskan untuk menulis JsonSerializer cepat saya sendiri yang sekarang 2.6x lebih cepat dari MS XML satu - jadi yang terbaik dari kedua dunia :).
Saat Anda menuruni rute JSON, Anda mengalami masalah yang sama yang dihadapi XML 10 tahun lalu:
Menggabungkan data dari dua sumber berbeda menjadi satu paket JSON dapat menyebabkan label elemen saling bertabrakan. Campurkan slip kemasan dan faktur, dan tiba-tiba alamat Dari dapat berarti sesuatu yang sangat berbeda. Itu sebabnya XML memiliki ruang nama .
Konversi antara struktur JSON yang berbeda akan membutuhkan penulisan kode biasa. Cara yang lebih deklaratif untuk memetakan data akan membuat pekerjaan lebih mudah. Itu sebabnya XML memiliki XSLT .
Mendeskripsikan struktur paket JSON — bidangnya, tipe data, dll — diperlukan agar orang-orang dapat terhubung ke layanan Anda. Sangat penting untuk memiliki bahasa metadata untuk ini. Itu sebabnya XML memiliki skema .
Melakukan dua percakapan client-server secara simultan menjadi perhatian. Jika Anda mengajukan dua pertanyaan kepada server dan mendapatkan satu jawaban kembali, bagaimana Anda tahu pertanyaan apa yang dijawabnya? Itu sebabnya XML memiliki WS-Correlation .
Dari baris pertama di http://json.org/xml.html
Extensible Markup Language (XML) adalah format teks yang berasal dari Standard Generalized Markup Language (SGML). Dibandingkan dengan SGML, XML sederhana. HyperText Markup Language (HTML), sebagai perbandingan, bahkan lebih sederhana. Meski begitu, buku referensi yang bagus tentang HTML setebal satu inci. Ini karena format dan penataan dokumen adalah bisnis yang rumit. . . .
Jelas JSON lebih cepat, tetapi bahkan lebih jelas bahwa sulit dibaca. Gunakan JSON untuk kecepatan, gunakan XML jika akan ada interaksi manusia dan Anda dapat mengorbankan kecepatan.
Saya menggunakan JSON untuk segala jenis konfigurasi, pertukaran data atau pengiriman pesan. Saya menggunakan XML hanya jika saya harus karena alasan lain atau semantik menandai data seperti dokumen.
XML dan JSON keduanya didukung oleh Microsoft. XML literal adalah fitur keren baru di VB 9. Dalam versi mendatang dari ASP.NET 4.0 JSON adalah suatu keharusan untuk memanfaatkan kekuatan templating sisi klien.
Dari pertanyaan yang Anda ajukan tampaknya JSON mungkin menjadi pilihan bagi Anda karena mudah diproses di sisi klien dengan atau tanpa jQuery.
Menggunakan JSON
Menggunakan XML
Saya menemukan artikel ini di pasar digital sangat menarik.
Beberapa bagian dari artikel dikutip di bawah ini.
Tentang pro JSON:
Jika semua yang Anda ingin sampaikan adalah nilai atom atau daftar atau hash nilai atom, JSON memiliki banyak keunggulan XML: itu dapat digunakan langsung melalui Internet, mendukung berbagai aplikasi, mudah untuk menulis program untuk memproses JSON, ini memiliki beberapa fitur opsional, itu dapat dibaca manusia dan cukup jelas, desainnya formal dan ringkas, dokumen JSON mudah dibuat, dan menggunakan Unicode. ...
Tentang pro XML:
Penawaran XML sangat baik dengan kekayaan penuh data tidak terstruktur. Saya tidak khawatir tentang masa depan XML sama sekali bahkan jika kematiannya dirayakan dengan gembira oleh kader desainer web API.
Dan aku tidak bisa menahan diri untuk tidak mengatakan, "Sudah kubilang!" token di meja saya. Saya berharap untuk melihat apa yang dilakukan orang-orang JSON ketika mereka diminta untuk mengembangkan API yang lebih kaya. Ketika mereka ingin bertukar data yang kurang terstruktur, apakah mereka akan memilihnya ke JSON? Saya melihat sesekali menyebutkan bahasa skema untuk JSON, akankah bahasa lain mengikuti? ...
Aturan cepat:
Penjelasan:
Peran utama JSON adalah membuat serialisasi data berorientasi objek dengan menggunakan tipe data yang umum untuk sebagian besar bahasa pemrograman: daftar , hash , dan skalar , dan untuk tujuan itu, JSON tidak dapat dikalahkan atau diperbaiki. Dengan "JSON tidak memiliki nomor versi [karena] tidak ada revisi pada tata bahasa JSON yang diantisipasi". - Douglas Crockford (Tidak bisa mengalahkan itu sebagai tanda bahwa Anda melakukan pekerjaan Anda dengan sempurna)
XML pernah dijual sebagai format antar-perubahan data, tetapi pertimbangkan dua kasus penggunaan yang paling umum: Komunikasi klien-server asinkron (AJAX) - JSON telah cukup banyak menggantikan XML seluruhnya (X seharusnya benar-benar menjadi J), dan layanan web : JSON telah menjadikan XML alternatif yang berlebihan.
Hal lain yang digunakan secara luas XML adalah file data yang dapat ditulis / dibaca (?) Manusia untuk program, tetapi di sini Anda juga memiliki format yang lebih ringkas, lebih ramah-program, lebih ramah-manusiawi dalam YAML, superset JSON.
Jadi untuk representasi data, JSON mengalahkan XML. Apa yang tersisa untuk XML? Representasi dokumen konten campuran, yang memang dimaksudkan untuk itu .
Sebagian besar teknologi web yang lebih baru bekerja menggunakan JSON, jadi alasan yang tepat untuk menggunakan JSON. Keuntungan besar adalah bahwa dalam XML Anda dapat mewakili informasi yang sama dalam berbagai cara yang berbeda, yang dalam JSON lebih mudah.
Juga JSON IMHO jauh lebih jelas daripada XML, yang menjadikannya keuntungan yang jelas bagi saya. Dan jika Anda bekerja dengan .NET, Json.NET adalah pemenang yang jelas untuk membantu Anda bekerja dengan JSON.