JSON क्या है?
JSON (JavaScript Object Notation) संरचित डेटा का टेक्स्ट फ़ॉर्मेट है जो ऑब्जेक्ट, ऐरे, स्ट्रिंग, नंबर, बूलियन और null से बनता है। इसे RFC 8259 और ECMA-404 परिभाषित करते हैं; यह भाषा-स्वतंत्र है और वेब API का डिफ़ॉल्ट फ़ॉर्मेट है क्योंकि यह कॉम्पैक्ट, पढ़ने योग्य और पार्स करने में आसान है।
JSON फ़ॉर्मेटर कैसे इस्तेमाल करें
- इनपुट पैनल में JSON पेस्ट करें या टाइप करें (या "Load example" पर क्लिक करें)।
- इंडेंटेशन स्टाइल चुनें और चाहें तो "Sort keys" (कीज़ सॉर्ट करें) चालू करें।
- फ़ॉर्मेट किया हुआ आउटपुट तुरंत दिखता है; लाइन और कॉलम के साथ बताई गई किसी भी गलती को ठीक करें।
- नतीजा कॉपी करें या उसे .json फ़ाइल के रूप में डाउनलोड करें।
JSON फ़ॉर्मेटर की खूबियाँ
- 2 स्पेस, 4 स्पेस, टैब या पूरी तरह मिनिफ़ाइड आउटपुट में प्रिटी-प्रिंट करता है
- टाइप करते ही लाइव फ़ॉर्मेटिंग, साथ में कॉपी और डाउनलोड बटन
- डिफ़-फ़्रेंडली, कैनोनिकल डॉक्यूमेंट के लिए वैकल्पिक रिकर्सिव की-सॉर्टिंग
- सटीक सिंटैक्स एरर — लाइन, कॉलम, संकेत और गड़बड़ टेक्स्ट के अंश सहित
- डॉक्यूमेंट के आँकड़े: साइज़, कीज़ की संख्या, नेस्टिंग डेप्थ और वैल्यू टाइप
- JavaScript की सुरक्षित रेंज से बाहर के इंटीजर पर चेतावनी देता है
JSON फ़ॉर्मेटर का उदाहरण
मिनिफ़ाइड API रिस्पॉन्स को फ़ॉर्मेट करना
इनपुट:
{"user":{"id":7,"name":"Layla"},"roles":["admin","editor"],"active":true}आउटपुट:
{
"user": {
"id": 7,
"name": "Layla"
},
"roles": [
"admin",
"editor"
],
"active": true
}JSON फ़ॉर्मेटर के बारे में अक्सर पूछे जाने वाले सवाल
क्या मेरा JSON ब्राउज़र से बाहर जाता है?
नहीं। फ़ॉर्मेटिंग पूरी तरह आपके ब्राउज़र में नेटिव JSON पार्सर से होती है; कुछ भी अपलोड या लॉग नहीं किया जाता।
क्या मैं बहुत बड़ी फ़ाइलें फ़ॉर्मेट कर सकता हूँ?
हाँ — 2 MB तक के डॉक्यूमेंट तुरंत फ़ॉर्मेट हो जाते हैं। इससे बड़े पेलोड के लिए पहले मिनिफ़ाई करें या डेटा को बाँट लें।
"Sort keys" क्या करता है?
यह ऑब्जेक्ट की कीज़ को रिकर्सिव रूप से वर्णक्रम में लगाता है — केस-असंवेदनशील तरीके से और एक तय कोलेशन से, जो आपके ब्राउज़र की भाषा पर निर्भर नहीं करता — ताकि एक जैसे कंटेंट वाले दो डॉक्यूमेंट का टेक्स्ट बिल्कुल एक जैसा बने। इससे diff और कोड रिव्यू बहुत आसान हो जाते हैं। सिर्फ़ अंकों वाली कीज़ टेक्स्ट की तरह सॉर्ट होती हैं, इसलिए "10" "9" से पहले आती है।
फ़ॉर्मेटर मेरी फ़ाइल में गलती क्यों बता रहा है?
JSON सख़्त है: कीज़ पर डबल कोट्स ज़रूरी हैं, आख़िरी कॉमा (trailing comma) की अनुमति नहीं है और कमेंट वर्जित हैं। एरर मैसेज लाइन, कॉलम और संभावित कारण का संकेत दिखाता है।
क्या बड़े इंटीजर बदल जाएँगे?
2^53 − 1 से बड़े इंटीजर JavaScript में ठीक-ठीक नहीं दर्शाए जा सकते। ऐसी वैल्यू मिलने पर टूल चेतावनी देता है ताकि आप उन्हें स्ट्रिंग के रूप में रख सकें।
तकनीकी नोट्स
पार्सिंग ब्राउज़र के नेटिव JSON.parse से होती है, इसलिए फ़ॉर्मेटर ठीक उतना ही स्वीकार करता है जितनी RFC 8259 अनुमति देता है, उससे ज़्यादा कुछ नहीं। पार्सिंग विफल होने पर टूल इंजन की एरर पोज़िशन को लाइन/कॉलम जोड़ी में बदलता है और आसपास के टेक्स्ट में आम गलतियाँ — सिंगल कोट्स, ट्रेलिंग कॉमा, बिना कोट वाली कीज़ या कमेंट — ढूँढ़ता है।
कीज़ सॉर्ट करते समय हर नेस्टिंग स्तर पर हर ऑब्जेक्ट की कीज़ एक तय, केस-असंवेदनशील वर्णक्रम में लिखी जाती हैं। सॉर्ट किया हुआ आउटपुट टूल खुद सीरियलाइज़ करता है, क्योंकि JavaScript ऑब्जेक्ट "10" जैसी इंटीजर-जैसी कीज़ को हमेशा सबसे पहले रखता है। ऐरे का क्रम कभी नहीं बदला जाता, क्योंकि उनका क्रम डेटा का हिस्सा होता है।
संदर्भ
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange FormatJSON का व्याकरण: ऑब्जेक्ट, ऐरे, स्ट्रिंग, नंबर, तीन लिटरल और इंटरचेंज एन्कोडिंग के रूप में UTF-8।
- ECMA-404: The JSON Data Interchange SyntaxEcma मानक के रूप में JSON सिंटैक्स, RFC 8259 के अनुरूप।
- Introducing JSONJSON का मूल एक-पृष्ठ विवरण, सिंटैक्स डायग्राम के साथ।