2012-09-10 21 views
12

मुझे JSON और XML के बीच अंतर मिल रहा था। चूंकि, दोनों सिस्टम के बीच डेटा इंटरचेंज के लिए हैं, लेकिन JSON और XML के बीच एक बड़ा अंतर है कि JSON XML से अधिक हल्का है। लेकिन मैं वास्तविक कारण नहीं ढूंढ पा रहा हूं कि जेएसओएन हल्के वजन क्यों है। जेएसओएन हल्के वजन क्या बनाता है ??JSON XML से अधिक हल्का क्यों है?

एक उत्तर मैंने पाया कि JSON में बहुत अधिक एक्सएमएल मार्कअप नहीं है। इसका वास्तविक अर्थ क्या है। क्या कुछ और कारण हैं जो बताते हैं कि जेएसओएन हल्के वजन क्यों है?

+1

एक पूरा उत्तर आपको प्राप्त हुए सभी तीन शीर्ष उत्तरों पर विचार करता है। यदि आप एक्सएमएल और जेएसओएन के बीच चयन करने की कोशिश कर रहे हैं, तो यह पूछना होगा कि यह किस उद्देश्य से होगा। यदि आप ट्रांसमिशन या मास स्टोरेज के लिए कॉम्पैक्ट सीरियलाइजेशन चाहते हैं, तो JSON जाना है। यदि आप दस्तावेज़ मैनिपुएशन करना चाहते हैं, तो एक्सएमएल, केरेक नोट्स के रूप में, अनुप्रस्थ प्रौद्योगिकियों द्वारा कहीं बेहतर समर्थित है। यदि आप .NET ढांचे का उपयोग कर रहे हैं तो यह कम महत्वपूर्ण है क्योंकि LINQ व्यावहारिक रूप से कुछ भी पूछताछ/रूपांतरित कर सकता है। –

+1

@ पीटरवोन: स्टैक ओवरव्लो पर "शीर्ष तीन उत्तरों" जैसे कुछ भी नहीं है, क्योंकि आदेश कास्टेड वोटों के अनुसार समय में भिन्न होता है। विशिष्ट उत्तरों को संदर्भित करने के लिए, कृपया लेखक का नाम दें या परमालिंक दें। विशेष रूप से, इस लेखन के समय, हमारे पास 21 वोटों और तीन उत्तरों के साथ तीन उत्तरों के साथ एक जवाब है। तो कौन सा "शीर्ष तीन" हैं? :) – KPM

+0

@ केपीएम - हाँ, और यह वही है जो मेरा मतलब था: टिप्पणी के समय तीन शीर्ष स्कोरिंग उत्तर। मैंने * लेखकों में से एक का नाम दिया, और मेरी टिप्पणी अपने आप खड़े होने में सक्षम थी; मैं उन उत्तरों का पूरी तरह से लेखकों के प्रति सौजन्य के रूप में उल्लेख करता हूं। वैसे भी, यहां हम वर्षों बाद हैं और वे अभी भी शीर्ष तीन उत्तरों के साथ-साथ तीन शीर्ष उत्तरों भी हैं। –

उत्तर

27

क्या आपने देखा है JSON और XML दस्तावेज़ों के उदाहरणों पर?

जबकि JSON और XML दोनों को मनमाने ढंग से पेड़ डेटा का प्रतिनिधित्व करने के लिए उपयोग किया जाता है, एक्सएमएल कहीं अधिक वर्बोज़ है। पेड़ में प्रत्येक तत्व का नाम (तत्व प्रकार का नाम) होता है, और तत्व टैग की मिलान करने वाली जोड़ी में संलग्न होना चाहिए। इसके विपरीत, जेएसओएन ने "नेस्टेड सरणी" में पेड़ को जावास्क्रिप्ट की तरह नोटेशन के प्रकार में व्यक्त किया है (वास्तव में, एक JSON दस्तावेज़ को सचमुच संबंधित सरणी में परिणामस्वरूप जावास्क्रिप्ट के रूप में पार्स किया जा सकता है)।

at the differences पर एक नज़र डालें। के बाद से तत्वों की एक मनमाना संख्या के साथ सजाया जा सकता

एक्सएमएल, ज़ाहिर शब्दार्थ अमीर की है जिम्मेदार बताते हैं, और तत्वों मुक्त पाठ प्रवाह के मिश्रित सामग्री और आगे, नेस्टेड तत्व शामिल हो सकते। उदाहरण के लिए, निम्नलिखित स्निपेट JSON के रूप में व्यक्त करने के लिए कठिन होगा:

<paragraph> 
    This is an entire paragraph of <emph>text</emph>. It is interspersed with 
    further, nested <emph>XML elements</emph>, as well as the occasional 
    <link href="http://stackoverflow.com/a/12346394/596781">hyperlink</link>. 
</paragraph> 

दूसरी ओर, डेटा तरह दस्तावेजों JSON में बहुत सरल हो सकता है। इस कल्पना कीजिए:

<properties> 
    <property type="int" name="ID">123</property> 
    <property type="date" name="birthday">19700101</property> 
    <references> 
     <url>http://stackoverflow.com/a/12346394/596781</url> 
     <doi>something.made.up</doi> 
    </references> 
</properties> 

यह एक बहुत ही कॉम्पैक्ट JSON सारणी हो जाता है।

एक माध्यमिक विचार दोनों प्रारूपों के चारों ओर टूलसेट की मात्रा है। जबकि जेएसओएन उपकरण मुख्य रूप से जेएसओएन डेटा को पार्स करने के बारे में हैं, डब्ल्यू 3 सी एक्सएसएलटी और एक्सपीएटीएच जैसे व्यवस्थित फैशन में एक्सएमएल में हेरफेर करने के लिए अनुवर्ती प्रौद्योगिकियों का एक बहुत बड़ा सेट विकसित कर रहा है।

संक्षेप में, और एक बहुत ही व्यक्तिगत राय के रूप में, मैं कहूंगा कि एक्सएमएल दस्तावेज़ के बारे में है और JSON डेटा के बारे में है। एक्सएमएल बड़े, संरचित दस्तावेजों के लिए अधिक प्राकृतिक और उपयोगी महसूस करेगा, जबकि जेएसओएन अक्सर डेटा सेट ट्रांसमिट करने के लिए सरल और कम वर्बोज प्रारूप होता है।

+1

एक्सएमएल के साथ आप अपने स्कीमा में डेटा प्रकार घोषित करेंगे, न कि आपके डेटा के हिस्से के रूप में। एक्सएमएल का एक बेहतर उदाहरण '<उपयोगकर्ता आईडी =" 123 "जन्मदिन =" 1 9 700101 "><संदर्भ url =" ... "doi =" ... "/>' –

+1

लिंक पर कई XML नमूने होंगे प्रदान करना अवैध है और वास्तव में जेएसओएन की तुलना में उचित तुलना नहीं है क्योंकि वे जानबूझकर ब्लॉटेड एक्सएमएल बनाते हैं –

8

JSON नोटेशन terser है। एक्सएमएल नोड प्रकार को बंद टैग में दोहराता है जबकि जेएसओएन सिर्फ स्टैक का उपयोग करके क्लोजर स्कोप का अनुमान लगाता है। एक्सएमएल नेमस्पेस का समर्थन करता है, जहां तक ​​मुझे पता है कि JSON नहीं करता है। एक्सएमएल स्कीमा में आम तौर पर प्रकार की जानकारी शामिल होती है लेकिन JSON के साथ ऐसा करने के लिए कोई बाहरी कारण नहीं है। यह ध्यान दिया जाना चाहिए कि जेएसओएन का उदय इस तथ्य के लिए कोई छोटा सा हिस्सा नहीं है कि यह वास्तव में उपयोग किए गए सभी मामलों में एक्सएमएल के बराबर है। तार के ऊपर जैसे ही एलजेडब्लूडब्ल्यू संपीड़न खेल में आता है, अंतर भिन्न हो जाता है क्योंकि एक्सएमएल शब्दकोश संपीड़न के लिए अच्छी तरह से पैदा करता है।

8

डेटा मॉडल अलग है।

  • प्रसंस्करण निर्देश
  • टिप्पणियाँ
  • गुण

इसलिए: इसके अलावा मार्कअप की कमी है, जो आप अपने आप को देखा है से, JSON भी इस तरह के रूप में अन्य सभी एक्सएमएल सुविधाओं, नहीं है , न केवल डेटा ही हल्का वजन है, बल्कि डेटा मॉडल को लागू करने वाली कोई लाइब्रेरी भी है। यह प्रतिपादन, पार्सिंग, गैर-जावास्क्रिप्ट भाषाओं के साथ जेएसओएन को बहुत तेज़ी से संसाधित करता है। जावास्क्रिप्ट के लिए, यह एक चाहती हैं, के रूप में JSON एक जावास्क्रिप्ट पार्सर पर कार्रवाई करने के

7

सादगी

एक्सएमएल SGML से अधिक आसान है के लिए वास्तविक जावा स्क्रिप्ट कोड है, और इस प्रकार और अधिक "हल्के", लेकिन JSON है एक्सएमएल से बहुत आसान है। जेएसओएन में आधुनिक प्रोग्रामिंग भाषाओं में उपयोग की जाने वाली डेटा संरचनाओं पर अधिक छोटा व्याकरण और नक्शा अधिक सीधे है।

तानाना

JSON एक्स्टेंसिबल क्योंकि यह होने की जरूरत नहीं है नहीं है। JSON एक दस्तावेज़ मार्कअप भाषा नहीं है, इसलिए इसमें नए टैग या विशेषताओं को डेटा का प्रतिनिधित्व करने के लिए परिभाषित करना आवश्यक नहीं है।

इंटरोऑपरेबिलिटी

JSON XML के रूप में एक ही अंतर की क्षमता है। क्योंकि यह कॉर्पोरेट/राजनीतिक मानकीकरण संघर्ष के केंद्र में नहीं है

खुलापन

JSON XML के रूप में कम से कम के रूप में खुला है, शायद अधिक तो।

Content link

3

यहाँ खेल में कई कारकों के होते हैं:

(क) JSON डेटा मॉडल सरल है; इसमें कम प्रकार के ऑब्जेक्ट हैं और उनके पास कम गुण हैं।

(ख) JSON डेटा मॉडल Javascript, तो कम डेटा रूपांतरण जब इन भाषाओं

(ग) JSON के धारावाहिक वाक्य रचना कम है का उपयोग कर की जरूरत है के रूप में आम प्रोग्रामिंग भाषाओं में डेटा के करीब मॉडल उपलब्ध है एक्सएमएल के सिंटैक्स की तुलना में अनावश्यकता (कम वर्बोज़ है)।

बेशक, ये अंतर इसलिए हैं क्योंकि JSON को XML से भिन्न उद्देश्य के लिए डिज़ाइन किया गया था।

3

यह रैखिक कारक से छोटा है। यह वास्तव में छोटा नहीं है। एक बार संकुचित हो जाने पर, दोनों प्रारूप एक ही स्थान के बारे में लेते हैं।

याद रखें कि जो प्रोग्राम पहले से ही एक्सएमएल का उपयोग करना चाहते हैं वे JSON को अनुमति देकर सरल नहीं होंगे, वे अधिक जटिल हो जाएंगे। अतिरिक्त मानकों को केवल तब तक जटिल बनाते हैं जब तक कि आप पुराने मानकों से छुटकारा पाएं, और एक्सएमएल जल्द ही गायब नहीं होगा।

एक्सएमएल एक दस्तावेज़ की अवधारणा के आसपास बनाया गया था। जेएसओएन सरल डेटा संरचनाओं के बारे में अधिक था। JSON मानकों के बारे में कम परवाह करता है, यानी।इसमें कोई स्कीमा नहीं है, इसलिए XML का उपयोग करने में कुशल किसी के लिए पोर्टेबिलिटी अधिक कठिन हो सकती है। आम तौर पर जब मुझे कुछ रीस्टफुल सेवा का उपयोग करना पड़ता है, तो मुझे इसे समझने के लिए 'कोड पढ़ना' या 'JSON डेटा को स्वयं देखें' कहा जाता है। अर्थात। अंतर्निहित (और अक्सर, बदलते) डेटा प्रारूप।

दोनों प्रारूपों को उनके प्राकृतिक रूप में, समस्या का सामना करना पड़ता है, केवल पेड़ों का प्रतिनिधित्व करते हैं, न कि डेटा के ग्राफ। मुझे या तो प्रारूप पसंद नहीं है। वे दोनों आधा तैयार लगते हैं। ऑब्जेक्ट सीरियलाइजेशन और समस्याएं हल करता है।

0

हमें सुरक्षा पहलू को क्यों भूलना चाहिए? नेटवर्क पर डेटा स्थानांतरित करते समय, एक्सएमएल अधिक सुरक्षित है क्योंकि हम एक्सएमएल लिफाफा तैयार कर सकते हैं और एसओएपी अनुरोध कर सकते हैं।

संबंधित मुद्दे