पोस्टिंग और उत्तर क्योंकि मानकों के बारे में बहुत सारे पुराने विचार और भ्रम हैं। दिसंबर 2017 तक, दो प्रतिस्पर्धी मानक हैं:
RFC 8259 - https://tools.ietf.org/html/rfc8259
ECMA-404 - http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
json.org पता चलता है ECMA-404 है मानक है, लेकिन इस साइट एक अधिकार होने के लिए प्रकट नहीं होता। जबकि मुझे लगता है कि ECMA पर विचार करना उचित है, यहाँ क्या महत्वपूर्ण है, मानकों (अद्वितीय कुंजी के बारे में) के बीच एकमात्र अंतर यह है कि RFC 8259 कहता है कि कुंजी अद्वितीय होनी चाहिए, और ECMA-404 का कहना है कि उन्हें होना आवश्यक नहीं है अद्वितीय।
RFC-8259:
"किसी वस्तु के नाम अद्वितीय होने चाहिए।"
उस तरह के सभी कैप्स में "चाहिए" शब्द का आरएफसी दुनिया के भीतर एक अर्थ है, जिसे विशेष रूप से एक और मानक (बीसीपी 14, आरएफसी 2119 - https://tools.ietf.org/html/rfc2119 ) के रूप में परिभाषित किया गया है ,
- इस शब्द या विशेषण "तर्क" का अर्थ यह है कि किसी विशेष आइटम को अनदेखा करने के लिए विशेष परिस्थितियों में मान्य कारण मौजूद हो सकते हैं, लेकिन एक अलग पाठ्यक्रम चुनने से पहले पूर्ण निहितार्थों को समझना और ध्यान से तौलना चाहिए।
ECMA-404:
"JSON सिंटैक्स नाम के रूप में उपयोग किए गए स्ट्रिंग्स पर कोई प्रतिबंध नहीं लगाता है, इसके लिए नाम स्ट्रिंग्स अद्वितीय होने की आवश्यकता नहीं है, और नाम / मूल्य जोड़े के क्रम के लिए कोई महत्व नहीं देता है।"
तो, कोई फर्क नहीं पड़ता कि आप इसे कैसे स्लाइस करते हैं, यह वाक्यात्मक रूप से वैध JSON है ।
RFC 8259 में अद्वितीय प्रमुख सिफारिश के लिए कारण दिया गया है,
एक ऑब्जेक्ट जिसका नाम सभी अद्वितीय हैं, इस अर्थ में अंतर है कि उस ऑब्जेक्ट को प्राप्त करने वाले सभी सॉफ़्टवेयर कार्यान्वयन नाम-मूल्य मैपिंग पर सहमत होंगे। जब किसी वस्तु के भीतर नाम अद्वितीय नहीं होते हैं, तो ऐसी वस्तु प्राप्त करने वाले सॉफ्टवेयर का व्यवहार अप्रत्याशित होता है। कई कार्यान्वयन अंतिम नाम / मूल्य जोड़ी की रिपोर्ट करते हैं। अन्य कार्यान्वयन किसी त्रुटि की रिपोर्ट करते हैं या ऑब्जेक्ट को पार्स करने में विफल होते हैं, और कुछ कार्यान्वयन डुप्लिकेट सहित सभी नाम / मूल्य जोड़े की रिपोर्ट करते हैं।
दूसरे शब्दों में, RFC 8259 के दृष्टिकोण से, यह मान्य है लेकिन आपका पार्सर बारफ हो सकता है और ऐसा करने का कोई वादा नहीं है, यदि कोई हो, तो मान उस कुंजी के साथ जोड़ा जाएगा। ECMA-404 के दृष्टिकोण से (जो मैं व्यक्तिगत रूप से प्राधिकरण के रूप में लेना चाहूंगा), यह वैध, अवधि है। मेरे लिए इसका मतलब यह है कि जो भी पार्सर पार्स करने से इनकार करता है, वह टूट जाता है। इन दोनों मानकों के अनुसार इसे कम से कम पार्स करना चाहिए। लेकिन यह आपकी पसंद की मूल वस्तु में कैसे बदल जाता है, किसी भी मामले में, अद्वितीय कुंजी या नहीं, पूरी तरह से पर्यावरण और स्थिति पर निर्भर करता है, और इनमें से कोई भी शुरू करने के लिए मानक में नहीं है।
Dictionary<string, string>