JSON फ़ॉर्मैट करें
JSON की एक लंबी लाइन को पढ़ने लायक बनाएं, या उसे वापस सिकोड़ दें। बड़ी संख्याओं का हर अंक बचा रहता है, जिसमें ज़्यादातर ऑनलाइन फ़ॉर्मैटर चुपचाप ग़लती करते हैं। कुछ भी स्टोर नहीं होता।
- कभी स्टोर नहीं होती
- न कतार, न इंतज़ार
- साइनअप नहीं, वॉटरमार्क नहीं
फ़ॉर्मैट किया हुआ JSON यहां दिखेगा।
यह कैसे काम करता है
अपना JSON पेस्ट करें
या .json फ़ाइल यहां छोड़ें। आप जो भी पेस्ट करते हैं, वह इसी पेज में रहता है — कुछ भी स्टोर नहीं होता।
इंडेंट चुनें
दो स्पेस, चार, टैब, या मिनिफ़ाई करके एक ही लाइन में। आपकी पसंद अगली बार के लिए याद रखी जाती है।
कॉपी या डाउनलोड करें
नतीजा कॉपी करें, या फ़ाइल के रूप में सेव करें। अगर JSON टूटा हुआ है, तो इसके बजाय आपको लाइन, कॉलम और कैरेक्टर मिलता है।
आने-जाने में क्या बचा रहता है
फ़ॉर्मैटिंग का मतलब है पार्स करना और दोबारा प्रिंट करना, और सिर्फ़ संख्याएं ही वैसे टेक्स्ट के रूप में आगे जाती हैं जैसे आपने लिखी थीं। यह उस बड़े पूर्णांक वाले मामले से ज़्यादा व्यापक है जिसे बैनर गिनता है: जिस भी संख्या की सबसे छोटी JavaScript वर्तनी आपकी वर्तनी से अलग है, उसे उसके सोर्स से दोबारा लिखा जाता है, इसलिए 1.10 का आख़िरी शून्य बना रहता है, 1e5 एक्सपोनेंट रूप में रहता है और नेगेटिव ज़ीरो नेगेटिव ही रहता है। चेतावनी में सिर्फ़ असुरक्षित पूर्णांक गिने जाते हैं, क्योंकि उन्हीं के मामले में विकल्प एक साफ़-सुथरी वर्तनी नहीं बल्कि चुपचाप डेटा का बिगड़ना है।
स्ट्रिंग टेक्स्ट के रूप में आगे नहीं जातीं। डॉक्यूमेंट पढ़ते समय एस्केप डिकोड होते हैं और प्रिंट करते समय नए सिरे से लिखे जाते हैं, इसलिए \u0041 वापस A बनकर आता है और एस्केप किया गया फ़ॉरवर्ड स्लैश बिना एस्केप के। मान वही रहता है पर बाइट नहीं, और यह सिर्फ़ एक स्थिति में मायने रखता है, पर वहां बहुत ज़्यादा: अगर आगे की कोई चीज़ दो JSON फ़ाइलों की बाइट-दर-बाइट तुलना करती है, तो उनमें से एक को फ़ॉर्मैटर से गुज़ारना कोई बेअसर काम नहीं है।
दोबारा फ़ॉर्मैट किए गए नतीजे पर भरोसा करने से पहले ऑब्जेक्ट से जुड़े दो व्यवहार जानने लायक हैं। डुप्लिकेट की चुपचाप सुलझा दी जाती हैं, आख़िरी वाली जीतती है, ठीक वैसे ही जैसे ब्राउज़र का अपना पार्सर सुलझाता है — दो "id" फ़ील्ड वाला डॉक्यूमेंट बिना किसी शिकायत के फ़ॉर्मैट होता है और एक के साथ वापस आता है, और कुछ भी नहीं बताता कि दूसरी भी थी। और की का क्रम आपकी फ़ाइल वाला सिर्फ़ उन की के लिए रहता है जो पूर्णांक नहीं हैं: "1", "2" और "name" वाला ऑब्जेक्ट अंकों वाली की पहले, संख्या के क्रम में, लेकर वापस आता है, क्योंकि JavaScript ख़ुद ऑब्जेक्ट की प्रॉपर्टी को इसी क्रम में रखती है। सामान्य की उसी क्रम में रहती हैं जिसमें आपने लिखी थीं।
जब आपको कुछ और चाहिए
अगर आपके पास tsconfig.json, ESLint कॉन्फ़िग या VS Code सेटिंग्स फ़ाइल है, तो यह पेज कमेंट और आख़िरी कॉमा के आसपास फ़ॉर्मैट करने के बजाय उन्हें दिखा देगा, और JSON टूल के लिए यही सही जवाब है, पर आपकी फ़ाइल के लिए यह ग़लत टूल है। वे JSONC हैं, और आपका एडिटर उन्हें पहले से पार्स करता है; कमांड लाइन पर json5 और dasel दोनों उन्हें JSON होने का दिखावा किए बिना पढ़ते हैं।
सिर्फ़ दोबारा इंडेंट करने से आगे के किसी भी काम के लिए फ़ॉर्मैटर ग़लत तरह का टूल है। jq एक एक्सप्रेशन में वह कर देता है जिसके लिए पेस्ट बॉक्स में कोई कंट्रोल ही नहीं होता: jq -S . हर ऑब्जेक्ट की की सॉर्ट करता है ताकि दो रिस्पॉन्स की तुलना हो सके, jq 'del(.token)' किसी को पेलोड दिखाने से पहले एक फ़ील्ड हटा देता है, और jq -c ऑब्जेक्ट की ऐरे को उस JSON Lines में समेट देता है जो पाइपलाइन को चाहिए। यह क्लिपबोर्ड के बजाय फ़ाइल पढ़ता है, और जब डॉक्यूमेंट इतना बड़ा हो जाए कि आराम से सेलेक्ट न हो सके, तो यही फ़र्क़ मायने रखता है।
अक्सर पूछे जाने वाले सवाल
क्या मेरा JSON कहीं स्टोर होता है?
नहीं। कोई सर्वर कॉल नहीं, कोई लॉगिंग नहीं, और कुछ भी स्टोर नहीं होता। पेज लोड होने के बाद आप इंटरनेट बंद कर सकते हैं और यह काम करता रहता है। यहां यह जितना दिखता है उससे ज़्यादा मायने रखता है: लोग ऑनलाइन फ़ॉर्मैटर में जो चीज़ें पेस्ट करते हैं वे API रिस्पॉन्स, कॉन्फ़िग फ़ाइलें और एरर पेलोड होती हैं, और उनमें अक्सर टोकन, ग्राहकों के रिकॉर्ड और इंटरनल होस्टनेम होते हैं।
जब दूसरे फ़ॉर्मैटर नहीं रखते, तो यह बड़ी संख्याओं को सटीक क्यों रखता है?
क्योंकि लगभग हर दूसरा फ़ॉर्मैटर उन्हें चुपचाप बिगाड़ देता है। JavaScript की संख्या 64-बिट फ़्लोट होती है, इसलिए वह सिर्फ़ 9,007,199,254,740,991 तक के पूर्णांक ही सटीक रख सकती है। इससे बड़ी कोई भी चीज़ — Twitter/X पोस्ट ID, Discord snowflake, बैंक खाता नंबर, 64-बिट डेटाबेस की — `JSON.parse` से गुज़रते ही अपने आख़िरी अंक खो देती है। संख्या फिर भी सही-सी दिखती है, और यही उसे ख़तरनाक बनाता है: 7205759403792793600 चुपचाप 7205759403792793000 बन जाती है। यह पेज आपके पेस्ट किए अंक बिल्कुल वैसे ही रखता है, और बताता है कि उसे कितनी संख्याएं बचानी पड़ीं।
टूटी हुई फ़ाइल के साथ यह क्या करता है?
यह बताता है कि समस्या कहां है, सिर्फ़ यह नहीं कि समस्या है। आपको लाइन नंबर, कॉलम, वह लाइन जिसमें ग़लत कैरेक्टर के नीचे एक निशान (^) होता है, और आसान शब्दों में विवरण मिलता है — “Unexpected token” के बजाय “} से पहले एक आख़िरी कॉमा”। आख़िरी कॉमा, सिंगल कोट, बिना कोट वाली की और स्ट्रिंग के अंदर बिना एस्केप की नई लाइन — यही चार ज़्यादातर टूटे JSON की वजह होते हैं, और हर एक का नाम लेकर बताया जाता है।
क्या यह JSON Lines / NDJSON संभालता है?
हां, और उसका आकार बनाए रखता है। JSON Lines में हर लाइन में एक पूरा JSON मान होता है — लॉग और डेटा एक्सपोर्ट यही फ़ॉर्मैट इस्तेमाल करते हैं — और उसे कई लाइनों में फैलाकर फ़ॉर्मैट करने से वही चीज़ ख़त्म हो जाती जो उसे काम का बनाती है। यह अपने-आप पहचाना जाता है, हर लाइन अलग से फ़ॉर्मैट होती है, और हर लाइन में एक मान वाला लेआउट बना रहता है।
क्या यह कमेंट या आख़िरी कॉमा वाला JSON ठीक कर सकता है?
यह उन्हें ठीक-ठीक दिखा देगा, लेकिन चुपचाप स्वीकार नहीं करेगा। कमेंट और आख़िरी कॉमा JSON नहीं हैं — वे JSON5 या JSONC हैं, जो tsconfig.json जैसी कॉन्फ़िग फ़ाइलें असल में इस्तेमाल करती हैं। जो फ़ॉर्मैटर उन्हें चुपचाप स्वीकार कर लेता, वह आपको ऐसी फ़ाइल थमा देता जिसे आपका पार्सर फिर अस्वीकार कर देता, और यह यहां मिलने वाली एरर से बदतर है।
क्या साइज़ की कोई सीमा है?
उपलब्ध मेमोरी, न कि हमारी लगाई कोई सीमा। कुछ मेगाबाइट के डॉक्यूमेंट तुरंत फ़ॉर्मैट हो जाते हैं; बहुत बड़े डॉक्यूमेंट की सीमा यह है कि एक साथ कितना रखा जा सकता है, हमारी तरफ़ की कोई चीज़ नहीं।
क्या मिनिफ़ाई करने से मेरा डेटा बदलता है?
नहीं। मिनिफ़ाई करना सिर्फ़ टोकन के बीच की ख़ाली जगह हटाता है — यह कभी की का क्रम नहीं बदलता, कभी संख्याओं की फ़ॉर्मैटिंग नहीं बदलता, कभी कुछ नहीं हटाता। नतीजा पार्स होकर बिल्कुल वही मान देता है, बस छोटा होता है।
ध्यान दें: फ़ॉर्मैटिंग सटीक है — डॉक्यूमेंट को पार्स करके दोबारा प्रिंट किया जाता है, इसलिए जो भी पार्स होता है वह वापस निकलेगा। सिर्फ़ सख़्त JSON: कमेंट, आख़िरी कॉमा और बिना कोट वाली की चुपचाप ठीक करने के बजाय अस्वीकार कर दी जाती हैं, क्योंकि उन्हें ठीक करने का मतलब होता अंदाज़ा लगाना। बहुत बड़े डॉक्यूमेंट फ़ॉर्मैट करते समय मेमोरी में दो बार रखे जाते हैं।
यह टूल अपनी वेबसाइट पर लगाएं
किसी भी ब्लॉग, क्लास पेज या हेल्प आर्टिकल के लिए मुफ़्त। एक स्निपेट पेस्ट करें और आपके विज़िटर इसे सीधे आपके पेज पर इस्तेमाल कर सकेंगे।
और डेवलपर टूल्स
JSON वैलिडेटर
पता करें कि JSON ठीक कहां टूटा है
XML फ़ॉर्मैटर
XML को इंडेंट करें ताकि वह पढ़ा जा सके
Base64 डिकोड करें
Base64 को वापस टेक्स्ट या फ़ाइल में बदलें
JWT डिकोडर
टोकन के अंदर क्या है, निजी तौर पर पढ़ें
XML वैलिडेटर
पता करें कि XML ठीक कहां टूटा है
Base64 एन्कोड करें
टेक्स्ट या फ़ाइल को Base64 में बदलें