google protokol tamponları vs json vs XML [kapalı]


230

Ben onun değerlerini ve değerlerini bilmek istiyorum

  • Google Protokol Tamponları
  • JSON
  • XML

Biri Perl ve diğeri Java olmak üzere iki uygulama için ortak bir çerçeve uygulamak istiyorum. Bu nedenle, Perl ve Java gibi her iki teknoloji tarafından da kullanılabilecek ortak bir hizmet oluşturmak istiyoruz.

Her ikisi de web uygulamalarıdır.

Lütfen bu konuda değerli düşüncelerinizi ve önerilerinizi paylaşın. Google'da birçok bağlantı gördüm, ancak hepsinin karışık fikirleri var.


9
Sizce burada bir konsensüs olması muhtemel mi?
Aralık'ta Barmar


1
Çok teşekkürler. Ancak daha fazla Protokol Tamponları vs JSON bilmek istiyorum.
Manoj Kathiriya

19
@Barmar 'Fikir birliği değil, rasyonel seçim, artılar ve eksiler hakkında, meta polisin SO içeriğinin kalitesini düşürmeye başlamadan önce sorunun sorulması iyi oldu.
Boris Treukhov

Bu tür soruların keyfi olarak kapatılmasına şiddetle karşı çıkardım. Ama gerçek şu ki, bu seçimi yapmak için gereken bir projeye danışsaydım, SO mesajında ​​normalden çok daha fazla bilgi isterdim; Burada alacağınız herhangi bir tavsiye anekdottur ve projenizin gereksinimlerini ve kısıtlamalarını neredeyse tamamen bilmemeye dayanır.
Michael Kay

Yanıtlar:


279

Json

  • okunabilir / düzenlenebilir
  • önceden şemayı bilmeden ayrıştırılabilir
  • mükemmel tarayıcı desteği
  • XML'den daha az ayrıntılı

XML

  • okunabilir / düzenlenebilir
  • önceden şemayı bilmeden ayrıştırılabilir
  • SOAP vb için standart
  • iyi takım desteği (xsd, xslt, sax, dom, vb.)
  • oldukça ayrıntılı

Protobuf

  • çok yoğun veri (küçük çıktı)
  • şemayı bilmeden sağlam bir şekilde kodunu çözmek zor (veri biçimi dahili olarak belirsiz ve açıklığa kavuşturmak için şema gerekiyor)
  • çok hızlı işleme
  • insan gözü için tasarlanmamıştır (yoğun ikili)

Hepsinin çoğu platformda iyi desteği var.

Şahsen, bu günlerde nadiren XML kullanıyorum. Tüketici bir tarayıcı veya genel bir API ise json kullanma eğilimindeyim. Dahili API'ler için performans için protobuf kullanma eğilimindeyim. Herkese açık API'da (üstbilgiler veya ayrı uç noktaları aracılığıyla) sunmak da işe yarar.


8
XML kod çözme için daha fazla iştir, ancak doğrulama JSON'a göre büyük bir avantaj olabilir. İçerdiği bir ödeme işlemini işlemeden önce XML'nizi bir şema ile doğrulamak size ekstra bir sağlamlık katmanı sağlar.
CC.

11
XML ayrıca metnin gibi etiket eklemeleriyle değiştirildiği bir anlatım stiline de izin verir <value>This is a <attention>narrative style</attention>. Tags could appear <exclamation /> in the middle of text</value>. Bu, XML'in JSON ve Protokol Arabellekleri ile karşılaştırıldığında benzersiz özelliğidir.
Paul

3
@Marc Gravell: İleri uyumluluk açısından ne dersiniz? Benim izlenimim bu, protobuf'un büyük satış noktalarından biri mi?
Thomas Ahle

1
Igor Ganapolsky, işlem aşaması json ile uzun ve kaçınılmazken, protobufflar için gerekli çok az veya hiç ayrıştırma olmadığından, bunun kavramsal olarak imkansız olduğu anlayışımdır.
Jules GM

3
Sadece JSON ile şemalar kullanabileceğinizi belirtmek isteriz.
İsa Angulo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.