मुख्य सामग्री पर जाएँ
Tooletto

JSON फ़ॉर्मेटर

सही इंडेंटेशन के साथ सुंदर बनाने के लिए JSON पेस्ट करें, या इसे सबसे छोटे वैध आउटपुट में मिनिफ़ाई करें। अवैध JSON की समस्या की सटीक लाइन और कॉलम बताई जाती है।

  • फ़ाइलें कभी आपकी डिवाइस से बाहर नहीं जातीं
  • मुफ़्त, बिना साइन-अप
  • कोई वॉटरमार्क नहीं
  • लोड होने के बाद ऑफ़लाइन भी काम करता है
Loading tool…

JSON फ़ॉर्मेटर कैसे करें

  1. 1

    अपना JSON पेस्ट करें

    इनपुट बॉक्स में JSON पेस्ट करें या टाइप करें। आपके टाइप करते ही यह पार्स होता है।

  2. 2

    एक स्टाइल चुनें

    2 स्पेस, 4 स्पेस या टैब इंडेंटेशन चुनें, या मिनिफ़ाई किए आउटपुट पर स्विच करें।

  3. 3

    नतीजा कॉपी करें

    फ़ॉर्मेट किया JSON अपने क्लिपबोर्ड में कॉपी करें या .json फ़ाइल के रूप में डाउनलोड करें।

एक जैसा टेक्स्ट अवैध JSON क्यों हो सकता है

JSON, JavaScript के ऑब्जेक्ट लिटरल जो अनुमति देते हैं उसका एक सख़्त सबसेट है, और इन दोनों के बीच का फ़र्क़ ही ज़्यादातर "अवैध JSON" एरर की वजह है। किसी एरे या ऑब्जेक्ट में आख़िरी आइटम के बाद अंत में कॉमा आधुनिक JavaScript में क़ानूनी है लेकिन JSON में सिंटैक्स एरर है। सिंगल-कोट वाली स्ट्रिंग JavaScript में ठीक चलती हैं और JSON द्वारा सीधे रिजेक्ट होती हैं, जिसे डबल कोट चाहिए। बिना कोट वाली ऑब्जेक्ट कुंजियाँ — `{"name": "value"}` की बजाय `{name: "value"}` लिखना — JavaScript का एक वैध शॉर्टहैंड है और JSON में अवैध। इनमें से कोई भी अस्पष्ट किनारा-मामला नहीं है; ये ठीक वे आदतें हैं जो JavaScript लिखते समय बनती हैं और चुपचाप ऐसा दस्तावेज़ बना देती हैं जो JSON जैसा दिखता है लेकिन है नहीं।

कमेंट उलझन का दूसरा आम स्रोत हैं, क्योंकि JSON जैसे दिखने वाले काफ़ी सारे कॉन्फ़िगरेशन फ़ाइल फ़ॉर्मेट — और यहाँ तक कि जान-बूझकर इस्तेमाल किए गए कुछ JSON-व्युत्पन्न फ़ॉर्मेट — `//` या `/* */` कमेंट की अनुमति देते हैं, जबकि JSON की स्पेसिफ़िकेशन में बिल्कुल भी कमेंट सिंटैक्स नहीं है। किसी "JSON" कॉन्फ़िगरेशन फ़ाइल को जिसमें असल में कमेंट हैं किसी सख़्त पार्सर में कॉपी करना तुरंत फ़ेल हो जाता है, और उपाय है या तो कमेंट हटाना या यह मान लेना कि फ़ाइल शुरुआत में स्टैंडर्ड JSON इस्तेमाल कर ही नहीं रही थी।

एरर की सटीक स्थिति क्यों मायने रखती है

कोई पार्सर जो सिर्फ़ "अवैध JSON" बताता है बिना यह बताए कि कहाँ, वह आपको एक ग़ायब कॉमा या बिना-एस्केप की कोटेशन ढूँढने के लिए पूरे दस्तावेज़ को आँखों से स्कैन करने पर छोड़ देता है, जो कुछ दर्जन लाइनों के बाद वाक़ई उबाऊ हो जाता है। पहली समस्या की सटीक लाइन और कॉलम बताना उस खोज को एक सीधी लोकेशन में बदल देता है — एरर एक ख़ास कैरेक्टर बताती है, कोई अस्पष्ट सामान्य फ़ेल्योर नहीं — जो किसी बड़ी API रिस्पॉन्स को सेकंडों में ठीक करने और मैनुअल स्कैनिंग में मिनट लगने के बीच का फ़र्क़ है।

यह जानना अच्छा है कि एरर हमेशा पार्सर को मिलने वाली *पहली* समस्या बताती है, ज़रूरी नहीं कि दस्तावेज़ की हर समस्या: दो सिंटैक्स एरर वाला कोई दस्तावेज़ पहला बताएगा, और उसे ठीक करने से दूसरा अगली कोशिश में ही सामने आ सकता है, क्योंकि जो पार्सर पहले से ही संरचना समझने में फ़ेल हो चुका है वह उस पहले बिंदु के आगे, जहाँ वह उलझा, भरोसे के साथ और समस्याएँ नहीं ढूँढ सकता।

फ़ॉर्मेट करना बनाम मिनिफ़ाई करना — एक जैसे डेटा के लिए अलग-अलग ऑडियंस

सुंदर बनाया JSON, एक जैसी इंडेंटेशन और लाइन ब्रेक के साथ, उस व्यक्ति के लिए मौजूद है जो इसे पढ़ता है — किसी API रिस्पॉन्स को डीबग करते हुए, किसी कॉन्फ़िगरेशन फ़ाइल की समीक्षा करते हुए, एक नज़र में किसी डेटा संरचना को समझते हुए। उस संरचना का कोई भी हिस्सा उस प्रोग्राम के लिए मायने नहीं रखता जो वही JSON पार्स करता है, यही वजह है कि मिनिफ़ाई किया आउटपुट सिर्फ़ इंसानी पढ़ने लायक़पन के लिए मौजूद हर कैरेक्टर हटा देता है: इंडेंटेशन, लाइन ब्रेक, और टोकन के बीच कोई भी व्हाइटस्पेस जो उन्हें अलग करने के लिए ज़रूरी नहीं। दोनों फ़ॉर्म में दर्शाया गया डेटा एक जैसा है; सिर्फ़ उसे ट्रांसमिट या स्टोर करने के लिए ज़रूरी बाइट की संख्या अलग है, गहरे नेस्टेड संरचनाओं के लिए अक्सर काफ़ी अलग।

व्यावहारिक नियम सीधा है: जब आप इसके साथ काम कर रहे हों — पढ़ते हुए, डीबग करते हुए, हाथ से एडिट करते हुए — तो JSON फ़ॉर्मेट करें, और इसे किसी ऐसी जगह भेजने से पहले मिनिफ़ाई करें जो उसके साइज़ की क़ीमत चुकाती है, जैसे किसी HTTP रिक्वेस्ट का बॉडी, किसी URL का क्वेरी पैरामीटर, या किसी लंबाई-सीमित एनवायरनमेंट वेरिएबल में स्टोर की गई वैल्यू।

अक्सर पूछे जाने वाले सवाल

क्या मेरा JSON किसी सर्वर पर भेजा जाता है?

नहीं। पार्सिंग और फ़ॉर्मेटिंग ब्राउज़र के बिल्ट-इन JSON इंजन का इस्तेमाल करती हैं। कुछ भी ट्रांसमिट, लॉग या स्टोर नहीं होता, जो इसे प्रोडक्शन डेटा वाली API रिस्पॉन्स के लिए सुरक्षित बनाता है।

यह क्यों कहता है कि मेरा JSON अवैध है?

सबसे आम वजहें हैं अंत में कॉमा, डबल की बजाय सिंगल कोट, बिना कोट वाली कुंजियाँ, और कमेंट — इनमें से कोई भी वैध JSON नहीं है भले ही JavaScript इन्हें स्वीकार करे। एरर मैसेज सटीक स्थिति बताता है।

फ़ॉर्मेट करने और मिनिफ़ाई करने में क्या फ़र्क़ है?

फ़ॉर्मेट करना इंडेंटेशन और लाइन ब्रेक जोड़ता है ताकि संरचना पढ़ने लायक़ हो। मिनिफ़ाई करना पेलोड को जितना हो सके छोटा बनाने के लिए हर वैकल्पिक कैरेक्टर हटा देता है, जो तब चाहिए जब आप JSON को किसी रिक्वेस्ट या कॉन्फ़िगरेशन फ़ाइल में एम्बेड करना चाहते हैं।

क्या यह बहुत बड़ी फ़ाइलें संभाल सकता है?

कुछ मेगाबाइट तक के दस्तावेज़ तुरंत फ़ॉर्मेट हो जाते हैं। लगभग 10 MB से आगे, इस्तेमाल किए टूल की परवाह किए बिना ब्राउज़र का अपना JSON पार्सर ही बाधा बन जाता है।

JSON फ़ॉर्मेटर के सामान्य काम