सीधे JSON एडिटर पर जाएँ
JSON Formatter Viewer

JSON ब्यूटिफ़ायर

input.json

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

या कोई .json फ़ाइल यहाँ कहीं भी छोड़ दें

फ़ॉर्मैट किया गया आउटपुट यहाँ दिखेगा।

इनपुट का इंतज़ार है

न पढ़े जा सकने वाले JSON के तीन रूप

“इसे सुंदर बना दो” का मतलब आमतौर पर तीन अलग समस्याओं में से एक होता है, और हर एक का अपना बटन है।

1. वैध, पर मिनिफ़ाई

एक लंबी लाइन, कोई व्हाइटस्पेस नहीं। फ़ॉर्मैट दबाएँ। यह आसान मामला है — डॉक्यूमेंट पार्स हो जाता है, बस इंडेंट के साथ दोबारा लिखना है। ट्री व्यूअर अक्सर इससे भी तेज़ है, क्योंकि वहाँ आप सिर्फ़ अपनी ज़रूरत की ब्रांच खोलते हैं।

2. वैध, पर JSON किसी स्ट्रिंग के अंदर है

लॉग एग्रीगेटर, मैसेज क्यू और डेटाबेस TEXT कॉलम अक्सर ऐसा JSON लौटाते हैं जिसे JSON स्ट्रिंग के रूप में एनकोड किया गया है। वह बैकस्लैश से भरा आता है:

"{\"user\":{\"id\":41,\"tags\":[\"a\",\"b\"]}}"

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

3. जो वैध JSON ही नहीं है

JavaScript सोर्स से कॉपी किए स्निपेट, Python REPL आउटपुट, कमेंट वाली हाथ से लिखी कॉन्फ़िग और JSONP रिस्पॉन्स — सब “लगभग-JSON” हैं। ठीक करें दबाएँ, फिर फ़ॉर्मैट करें। यह क्या संभालता है:

  • {name: "ada"} → प्रॉपर्टी नाम कोट में आ जाते हैं
  • {'name': 'ada'} → सिंगल कोट डबल कोट बन जाते हैं
  • [1, 2, 3, ] → ट्रेलिंग कॉमा हट जाता है
  • // note और /* note */ → कमेंट हट जाते हैं
  • {"ok": True, "x": None} → Python लिटरल true और null बन जाते हैं
  • {"n": NaN} → null बन जाता है, क्योंकि JSON में NaN नहीं लिखा जा सकता
  • cb({"a":1}) → JSONP रैपर हट जाता है
  • {"a":1}
    {"a":2} → लाइन-डिलिमिटेड JSON एक ऐरे में लिपट जाता है

“ठीक करें” अपना नतीजा चुपचाप लागू करने की जगह एडिटर में रखता है, ताकि भरोसा करने से पहले आप फ़र्क़ पढ़ सकें।

तुलना के लिए कीज़ सॉर्ट करना

एक ही डेटा को अलग प्रॉपर्टी क्रम में रखने वाले दो डॉक्यूमेंट का डिफ़ थकाऊ होता है। कीज़ सॉर्ट करें हर लेवल पर हर ऑब्जेक्ट को A→Z क्रम में लगा देता है, इसलिए दोनों तरफ़ ब्यूटिफ़ाई करके सॉर्ट कर लें और टेक्स्ट डिफ़ सिर्फ़ असली फ़र्क़ दिखाएगा। ऐरे का क्रम नहीं छेड़ा जाता — ऐरे में क्रम फ़ॉर्मैटिंग नहीं, डेटा है।

बहुत बड़े डॉक्यूमेंट

करीब 1.5 MB से ऊपर एडिटर हर कीस्ट्रोक पर पार्स करना बंद कर देता है और आपके फ़ॉर्मैट दबाने का इंतज़ार करता है, जिससे टाइप और पेस्ट करना तेज़ रहता है। 400 KB से बड़ा ब्यूटिफ़ाई आउटपुट सिंटैक्स रंग के बिना दिखता है, क्योंकि उतने टेक्स्ट को टोकनाइज़ करना रंग से महँगा पड़ता है; ट्री हर आकार पर पूरी तरह चलता रहता है।

सामान्य प्रश्न

क्या ब्यूटिफ़ाई करना फ़ॉर्मैट करने से अलग है?

नहीं — वही काम, अलग नाम। यह पेज इसलिए है क्योंकि यहाँ इनपुट आमतौर पर ज़्यादा गंदा होता है: मिनिफ़ाई ब्लॉब, एस्केप की गई स्ट्रिंग, लॉग लाइनें और “लगभग-JSON” रूप। यह “ठीक करें” को एक क्लिक की दूरी पर रखता है।

“ठीक करें” असल में क्या बदलता है?

यह BOM, // और /* */ कमेंट तथा JSONP रैपर हटाता है; सिंगल-कोट स्ट्रिंग और बिना कोट कीज़ को डबल कोट में लाता है; ट्रेलिंग कॉमा हटाता है; True/False/None को JSON लिटरल बनाता है; NaN, Infinity और undefined को null करता है; स्ट्रिंग के अंदर की कच्ची नई लाइनें एस्केप करता है; और लाइन-डिलिमिटेड JSON को ऐरे में लपेटता है।

क्या “ठीक करें” मेरा डेटा बिगाड़ सकता है?

यह टेक्स्ट को दोबारा लिखता है, इसलिए नतीजा ज़रूर देखें — इसीलिए ठीक किया डॉक्यूमेंट चुपचाप लागू होने की जगह एडिटर में आता है। जानकारी खोने वाले दो बदलाव हैं: NaN/Infinity का null बनना, और बिना कोट वाले शब्द का स्ट्रिंग बनना। बाकी सब सिर्फ़ सिंटैक्स के बदलाव हैं।

अगर “ठीक करें” काम न करे तो?

आपको यह बताने वाला संदेश मिलता है, और वैलिडेटर का एरर लाइन, कॉलम तथा कैरेट के साथ स्क्रीन पर बना रहता है। अधूरे डॉक्यूमेंट और असल में ख़राब बाइट इंसान ही ठीक कर सकता है — “ठीक करें” सिंटैक्स के रूप संभालता है, गुम डेटा नहीं।

बाकी टूलकिट

वही इंजन, वही प्राइवेसी — हर पेज पूरी तरह आपके ब्राउज़र में चलता है।