गूगल प्रोटोकॉल बफ़र्स बनाम जोसन बनाम एक्सएमएल [बंद]


230

मैं गुण और दोष के गुण जानना चाहूंगा

  • Google प्रोटोकॉल बफ़र्स
  • JSON
  • एक्सएमएल

मैं दो एप्लिकेशन के लिए एक सामान्य ढांचा लागू करना चाहता हूं, एक पर्ल में और दूसरा जावा में। इसलिए, ऐसी कॉमन सर्विस बनाना चाहते हैं, जिसका इस्तेमाल टेक्नोलॉजी यानी पर्ल और जावा दोनों के द्वारा किया जा सके।

दोनों वेब-एप्लिकेशन हैं।

कृपया मुझे इस पर अपने बहुमूल्य विचार और सुझाव साझा करें। मैंने Google पर कई लिंक देखे हैं, लेकिन सभी में मिश्रित राय है।


9
और आपको लगता है कि यहां एक सहमति बनने की संभावना है?
बरमार


1
बहुत बहुत धन्यवाद। लेकिन अधिक प्रोटोकॉल बफ़र्स बनाम JSON जानना चाहेंगे।
मनोज कथिरिया

19
@ बरमार इट 'सर्वसम्मति के बारे में नहीं, यह तर्कसंगत विकल्प के बारे में है, पेशेवरों और विपक्षों के बारे में, यह अच्छा है कि मेटा पुलिस द्वारा एसओ कंटेंट की गुणवत्ता कम करने से पहले सवाल पूछा गया था।
बोरिस ट्रेखोव

मैं इस तरह के सवालों पर मनमाने तरीके से बंद किए जाने पर कड़ी आपत्ति जताता था। लेकिन तथ्य यह है, अगर मैं एक ऐसी परियोजना के लिए परामर्श कर रहा था जिसे इस विकल्प को बनाने की आवश्यकता थी, तो मैं एक एसओ पोस्ट में आम तौर पर दिखाई देने वाली तुलना में बहुत अधिक जानकारी चाहता हूं; आपको यहाँ मिलने वाली कोई भी सलाह वास्तविक है और यह आपके विशेष प्रोजेक्ट की आवश्यकताओं और बाधाओं के लगभग पूर्ण अज्ञान पर आधारित है।
माइकल Kay

जवाबों:


279

Json

  • मानव पठनीय / संपादन योग्य
  • पहले से स्कीमा जाने बिना पार्स किया जा सकता है
  • उत्कृष्ट ब्राउज़र समर्थन
  • XML से कम क्रिया

एक्सएमएल

  • मानव पठनीय / संपादन योग्य
  • पहले से स्कीमा जाने बिना पार्स किया जा सकता है
  • SOAP आदि के लिए मानक
  • अच्छा टूलींग समर्थन (xsd, xslt, सैक्स, डोम, आदि)
  • सुंदर क्रिया

Protobuf

  • बहुत घना डेटा (छोटा आउटपुट)
  • स्कीमा को जाने बिना कठोर रूप से डीकोड करना मुश्किल है (डेटा प्रारूप आंतरिक रूप से अस्पष्ट है, और स्पष्ट करने के लिए स्कीमा की आवश्यकता है)
  • बहुत तेजी से प्रसंस्करण
  • मानव आंखों के लिए इरादा नहीं (घने बाइनरी)

सभी को अधिकांश प्लेटफार्मों पर अच्छा समर्थन है।

व्यक्तिगत रूप से, मैं शायद ही कभी इन दिनों XML का उपयोग करता हूं। यदि उपभोक्ता एक ब्राउज़र या सार्वजनिक एपीआई है, तो मैं json का उपयोग करता हूं। आंतरिक API के लिए मैं प्रदर्शन के लिए प्रोटोबुफ़ का उपयोग करता हूं। सार्वजनिक एपीआई (दोनों हेडर या अलग-अलग समापन बिंदुओं के माध्यम से) पर दोनों की पेशकश भी अच्छी तरह से काम करती है।


8
XML को डिकोड करना अधिक काम है, लेकिन सत्यापन JSON पर एक बड़ा लाभ हो सकता है। आपके द्वारा भुगतान लेनदेन की प्रक्रिया करने से पहले अपने XML को एक स्कीमा के साथ सत्यापित करने से इसमें आपको मजबूती की अतिरिक्त परत मिलती है।
सी.सी.

11
एक्सएमएल एक कथा शैली की भी अनुमति देता है जहां पाठ को टैग के समावेश के साथ वैकल्पिक किया जाता है <value>This is a <attention>narrative style</attention>. Tags could appear <exclamation /> in the middle of text</value>। JSON और प्रोटोकॉल बफ़र्स की तुलना में XML की यह अनूठी विशेषता है।
पॉल

3
@ मर्क ग्रेवेल: फॉरवर्ड-कम्पेटिबिलिटी के मामले में कैसे। यह मेरी धारणा है कि यह प्रोटोबॉफ़ के बड़े विक्रय बिंदुओं में से एक है?
थॉमस अहले

1
इगोर गानापोलस्की यह मेरी समझ है कि यह बहुत ही वैचारिक रूप से असंभव है, क्योंकि प्रोटोबफ्स के लिए आवश्यक कोई भी पार्सिंग बहुत कम है, जबकि प्रसंस्करण चरण लंबे और अपरिहार्य है।
जूल्स जीएम

3
बस यह उल्लेख करने के लिए कि आप JSON के साथ स्कीमा का भी उपयोग कर सकते हैं।
यीशु एंगुलो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.