सभी लेख

JSON Formatter: फ़ॉर्मेटिंग, मिनिफिकेशन और वैलिडेशन

JSON टेक्स्ट के साथ काम करना आमतौर पर तीन अलग-अलग कामों में सिमट जाता है: इसे पठनीय बनाना, इसे कॉम्पैक्ट बनाना, या यह जाँचना कि यह सही है भी या नहीं। ये तीन अलग-अलग ऑपरेशन हैं, हालाँकि अक्सर इन्हें एक ही टूल में मिला दिया जाता है।

फ़ॉर्मेटिंग (pretty-print)

फ़ॉर्मेटिंग इंडेंटेशन, लाइन ब्रेक और विराम चिह्नों के आसपास स्पेस जोड़ती है ताकि JSON की संरचना आँखों से आसानी से पढ़ी जा सके। यह पूरी तरह सौंदर्यात्मक बदलाव है — यह डेटा को नहीं, केवल उसके दृश्य प्रस्तुतीकरण को प्रभावित करता है।

मिनिफिकेशन

मिनिफिकेशन सभी अनावश्यक स्पेस, लाइन ब्रेक और इंडेंटेशन हटा देता है, केवल ज़रूरी वर्ण छोड़ता है। इससे फ़ाइल का आकार कम होता है, जो नेटवर्क पर डेटा भेजते समय या बड़ी मात्रा में डेटा स्टोर करते समय महत्वपूर्ण है — डेटा की संरचना खुद नहीं बदलती।

वैलिडेशन

वैलिडेशन जाँचता है कि टेक्स्ट सिंटैक्स रूप से सही JSON है या नहीं। यह जिन सामान्य गलतियों को पकड़ता है: क्लोज़िंग ब्रैकेट से पहले अतिरिक्त कॉमा, डबल के बजाय सिंगल कोट्स, बिना कोट वाली ऑब्जेक्ट कुंजियाँ, कमेंट्स (जिनकी JSON स्टैंडर्ड में बिल्कुल अनुमति नहीं है), या बिना बंद किए ब्रैकेट। वैध JSON, फ़ॉर्मेटिंग या मिनिफिकेशन के काम करने के लिए एक आवश्यक शर्त है।

कब क्या चाहिए

  • फ़ॉर्मेटिंग — API रिस्पॉन्स डिबग करते समय या कॉन्फ़िग फ़ाइलों को मैन्युअल एडिट करते समय।
  • मिनिफिकेशन — नेटवर्क पर डेटा भेजने या प्रोडक्शन कोड में एम्बेड करने से पहले।
  • वैलिडेशन — यह पता लगाने के लिए कि पार्सर JSON फ़ाइल पढ़ने से क्यों इनकार कर रहा है।

देवनागरी \u-सीक्वेंस में क्यों बदल जाती है

ज़्यादातर सीरियलाइज़र डिफ़ॉल्ट रूप से ASCII से बाहर के हर कैरेक्टर को एस्केप कर देते हैं: Python में ensure_ascii=False दिए बिना json.dumps() से गुज़रने पर "नमस्ते", "नमस्ते" बन जाता है। देवनागरी में हर अक्षर अक्सर स्वतंत्र व्यंजन, स्वर-मात्रा और कभी-कभी विराम (्) जैसे कई यूनिकोड कोडपॉइंट्स से मिलकर बनता है, इसलिए एक छोटा-सा शब्द भी एस्केप होने पर असामान्य रूप से लंबी \u-श्रृंखला में बदल जाता है — बाकी लैटिन-आधारित भाषाओं के मुक़ाबले कहीं ज़्यादा। JSON दोनों ही रूप में वैध रहता है, लेकिन डिबगिंग के दौरान पढ़ना लगभग नामुमकिन हो जाता है।

JSON5 और JSONC — यह वही JSON नहीं है

कुछ एनवायरनमेंट (जैसे VS Code या TypeScript के कॉन्फ़िग) trailing comma, कमेंट्स और बिना कोट वाली कुंजियों को स्वीकार करते हैं — यह JSON5 या JSONC एक्सटेंशन है, स्टैंडर्ड JSON (RFC 8259) नहीं। सख्त JSON के लिए बना वैलिडेटर ऐसी फ़ाइल को सही तरीक़े से रिजेक्ट करेगा, भले ही एडिटर उसे "समझता" हो।

टूल आज़माएँ