मैं एक मूल विषय के बारे में इस तरह के अत्यधिक देखे जाने वाले प्रश्न पर उच्च-उत्कीर्ण गलत सूचनाओं की उपस्थिति से प्रसन्न हूं।
JSON तार एकल उद्धरण के साथ उद्धृत नहीं किया जा सकता है । कल्पना के विभिन्न संस्करण ( डगलस क्रॉकफोर्ड द्वारा मूल , ईसीएमए संस्करण , और आईईटीएफ संस्करण ) सभी राज्य हैं जो स्ट्रिंग को दोहरे उद्धरण के साथ उद्धृत किया जाना चाहिए। यह एक सैद्धांतिक मुद्दा नहीं है, और न ही एक राय के रूप में वर्तमान में सुझाए गए उत्तर; वास्तविक दुनिया में कोई भी JSON पार्सर त्रुटि देगा यदि आप इसे एक एकल-उद्धृत स्ट्रिंग पार्स करने का प्रयास करते हैं।
क्रॉकफोर्ड और ईसीएमए का संस्करण भी एक सुंदर चित्र का उपयोग करके स्ट्रिंग की परिभाषा को प्रदर्शित करता है, जिसे बिंदु को स्पष्ट रूप से बनाना चाहिए:
सुंदर तस्वीर भी JSON स्ट्रिंग के भीतर सभी वैध एस्केप दृश्यों को सूचीबद्ध करती है:
\"
\\
\/
\b
\f
\n
\r
\t
\u
चार-हेक्स अंकों के बाद
ध्यान दें, यहाँ कुछ अन्य उत्तरों में बकवास के विपरीत, \'
एक JSON स्ट्रिंग में कभी भी एक मान्य भागने का क्रम नहीं है। यह होने की आवश्यकता नहीं है, क्योंकि JSON तार हमेशा दोहरे-उद्धृत होते हैं।
अंत में, आपको सामान्य रूप से JSON प्रोग्राम करते समय स्वयं से बचने के पात्रों के बारे में नहीं सोचना चाहिए (हालांकि निश्चित रूप से आप मैन्युअल रूप से संपादन करेंगे, कहते हैं, JSON- आधारित कॉन्फ़िग फ़ाइल)। इसके बजाय, उस डेटा संरचना को बनाएं, जिसे आप अपनी मातृभाषा, सरणी, स्ट्रिंग, संख्या, बूलियन और अपनी भाषा के प्रकारों का उपयोग करके एन्कोड करना चाहते हैं, और फिर JSON-एन्कोडिंग फ़ंक्शन के साथ JSON में एन्कोड करें। इस तरह के एक फ़ंक्शन को संभवतः जावास्क्रिप्ट JSON.stringify
, PHP json_encode
, या पायथन की तरह जो भी भाषा आप उपयोग कर रहे हैं, में बनाया गया हैjson.dumps
। यदि आप ऐसी भाषा का उपयोग कर रहे हैं जिसमें ऐसी कार्यक्षमता नहीं है, तो आप संभवतः JSON पार्सिंग और एन्कोडिंग लाइब्रेरी का उपयोग कर सकते हैं। अगर आप चीजों को JSON से बदलने के लिए बस भाषा या लाइब्रेरी फ़ंक्शंस का उपयोग करते हैं, तो आपको JSON के बचने के नियमों को जानने की भी आवश्यकता नहीं होगी। यह वही गुमराह प्रश्न पूछने वाला है जो यहाँ किया जाना चाहिए था।