XML üzerinde JSON kullandığı bazı özel durumlar nelerdir?

7 Cevap php

Ben hala gerçekten gerçek bir dünya projede JSON kullanılan değil - Ben hemen hemen her zaman XML güveniyor.

7 Cevap

Ben bir seçim yapmamız gerektiğinde JSON tercih ederim. Bu birbirinden ayırır çünkü (yok şema varsayarak) XML daha kendini belgeleyen bulunuyor:

  • records (alt kalemler adında nesneler, sırası önemli değildir) ve
  • lists (diziler, numaralı alt-ürün, sipariş önemlidir).

Sadece iyi biçimli XML, bu iki şey hem elemanları tarafından temsil genellikle. Safça liste öğeleri için XML alt öğeleri ve adlandırılmış özellikleri için XML özelliklerini kullanmayı düşünebilirsiniz. Ama sonra adında bir özellik değerleri sadece dizeleri değil, keyfi iç içe geçmiş yapılar olabilir. Ve listelerde alt elemanların öğe adı genellikle gereksizdir.

XML basitçe (nesne hiyerarşileri temsil eden) en yaygın uygulama için kötü bir seçimdir, ve JSON daha iyi bir seçimdir.

Bir çok farklı uygulama - XML ​​aslında düz bir metin akışı içinde mark-up uygulanması için düşünülmüştü SGML'nin dayalı olarak bu şaşırtıcı değildir.

Her zaman bir XHR çağrısı çok veri taşımak gerekir.

Biz eski XML formatında daha, onun en az 4x küçük beri bizim bütün XHR JSON üzerinden çağırır hareket başladı.

Şimdi tarayıcıları ile, Firefox 3.5 gibi, yerli JSON sahip kullanımı kolay olan bir çok destek.

Kısacası JSON javascript için özellikle iyi bir birlikte çalışabilirlik seçenektir. Bu yeterli ise, XML ne anlamı var?

Daha karmaşık veri, json aklımda daha avantajlıdır. XML daha az "verimli" olabilir, ama nadiren herhangi bir sorun yaşadım - ama xml elemanlarının zorla adlandırma genellikle ayıklamak için çok kolay olduğu anlamına gelir - bu özel çeşitli kuruluşlar yayılan projeler için de geçerlidir - B2B birlikte çalışabilirlik, söylüyorlar. XML XSLT birçok dile XSD, entegrasyon (XML VB.NET 'in yerli XML, diyelim ki, ve LINQ) şeklinde daha iyi takım var ve bu "açık" daha doğal değil - aksatmadan, yeni bir elemanı ile XML genişletmek için daha kolay eski şema, json bir listede ise fonksiyonel çarpışmalar daha olası hale isimsiz öğeleri içerir. Tabii ki, can JSON tüm bunları geçici bir çözüm, ama bu öngörü ve planlama çaba gerektirir. Sonunda, gerçi most dilleri, iyi XML desteği özellikle javascript birkaç yardımcı işlevlerini (DOM burada herhangi bir tasarım ödülleri kazanmak değil) kullandığınız sürece bina XML şey bir ağrı yapıyor, değil.

Kısacası; Ben özellikle hafif istemci sunucu sıkı bir API gerekli değildir malzeme ve OO ve biraz daha ağır ağırlık aktarımı dolayısıyla XML'in kusurlu maç için olan bir sürükleme tüm veri değişimi ve uzun vadeli karmaşık API olması muhtemeldir, ve json XML kullanmak bu yardımların herhangi biri tarafından eşleşti. AJAX güncelleme hızlı bir bit yapmak için gidiyoruz eğer, JSON çalışıyor ve OO / XML empedans uyumsuzluğu (ve daha küçük serileştirme kek üzerine krema) önler.

JSON bant genişliği tasarrufu etkisi yaptı yeterince büyük bir uygulama üzerinde hiç çalışmadım, ama google veya microsoft iseniz, ben de bu önemli bir avantajdır eminim (ve muhtemelen üzerinde çok fazla harcamak gerekir Eğer serbest herhangi bir API hızlı nasıl olsa bir dependancy olacak beri zaten planlama ve öngörü.)

  • Bu kolay
  • Bu eval () çağırarak javascript nesnelere dizeleri dönüştürmek, ama dikkatli olmak basit. Eval ile ilgili daha fazla bilgi için () this question bakabilirsiniz.
  • Sen (bazı durumlarda bir performans artışı anlamına gelebilir) XML ayrıştırmak zorunda değilsiniz.

Ancak, XML teklifi büyük uyumluluk bazı gevşek.

Benim için, JSON sadece işlemek için daha kolay, düşük tepegöz, kullanımı kolay ve benim için, dojo + PHP sunucudan veri almak ve UI içine entegre etmek çok daha kolay bir halt benim seçilmiş araçları.

Hep. Ben şu anda dahil olduğum tüm projeler için JSON kullanabilirsiniz.

http://www.techyouruniverse.com/software/json-vs-xml-vs-serialize-for-data neden (benim sitede) üzerinde oldukça sağlam bir kaynaktır.

Bu javascript ile php entegre bir büyük, hızlı, kolay bir yoldur. Ayrıca veritabanındaki site kullanıcıları için tercihlerini saklamak için harika bir yol yapar.

JSON çok daha basit bir veri biçimidir. Şeması, XML gibi bile iyi-Belirtilen XML, birçok SOAP web hizmetleri kullanıldığı gibi, veri tiplerinin birlikte çalışabilirlik zordur. Hatta düz tamsayılar ve mantıksal birlikte çalışma sorunlara neden olabilir, ve isteğe bağlı değerleri ile iç içe diziler gibi daha karmaşık yapılar, farklı tip sistemleri arasında işi yapmak çok zordur. JSON kendi çok basit açıkça belirtilen tip sistemi ve birlikte çalışma için daha kolay gibi görünüyor.

XML bir diğer önemli dezavantajı ayrıştırma karmaşıklığı güvenlik sorunlarına yol açar olduğunu. Basit XML basittir. Ancak çoğu XML kütüphaneleri PG'ler ve DTD ve varlık açılımları dahil, komple XML ayrıştırmak. Bu XXE vulnerabilities ve benzeri yol, yanlış, o XML kütüphaneleri kullanmak kolaydır. Kodu olarak () JSON veri sadece eval eğer json da güvensiz kullanılabilir. Ama güvenli bir veri değil, kod olarak JSON veri tedavi JSON ayrıştırma kütüphane kullanımı kolay bol vardır.