टूल उपयोग FAQ: डेटा, फ़ाइलें और एक्सपोर्ट
मुख्य बात: क्या डेटा अपलोड होता है, कितनी बड़ी फ़ाइल काम करती है, क्या कुछ लोकल संग्रहीत होता है, चीनी escape में क्यों बदल जाता है: दस प्रश्न जो ऑनलाइन JSON टूल की असली सीमाएँ स्पष्ट करते हैं।

मुख्य बात: पार्सिंग, फ़ॉर्मैटिंग, diff और क्वेरी पूरी तरह आपके ब्राउज़र में चलती हैं और ऑफ़लाइन भी काम करती रहती हैं; संवेदनशील डेटा संभालने के बाद localStorage इतिहास साफ़ करें; और 10 MB से ऊपर फ़ाइल को ब्राउज़र में पेस्ट करने के बजाय कमांड-लाइन स्ट्रीमिंग टूल पर स्विच करें।
संवेदनशील पेलोड को किसी ऑनलाइन टूल में पेस्ट करने से पहले जानें कि वह कहाँ जाता है। यह लेख केवल टूल के रनटाइम व्यवहार को कवर करता है, सिंटैक्स को नहीं।
1. डेटा और गोपनीयता
क्या ऑनलाइन JSON फ़ॉर्मैटर मेरा डेटा किसी सर्वर पर अपलोड करता है?
नहीं। पार्सिंग, फ़ॉर्मैटिंग, minify, diff और क्वेरी सब ब्राउज़र में होती हैं, और पेज आपके द्वारा पेस्ट किया गया कुछ भी किसी एप्लिकेशन सर्वर को नहीं भेजता।
किसी ऑनलाइन टूल द्वारा डेटा अपलोड होता है या नहीं, यह जानने के लिए आपको गोपनीयता कथन पढ़ने की ज़रूरत नहीं; ब्राउज़र का नेटवर्क पैनल काफ़ी है:
- डेवलपर टूल खोलें, नेटवर्क पैनल पर जाएँ और लॉग बनाए रखने की सुविधा चालू करें;
- कुछ JSON पेस्ट करें और "फ़ॉर्मैट" पर क्लिक करें;
- देखें कि कोई नया XHR या fetch अनुरोध आता है या नहीं, और उसका body आपकी सामग्री रखता है या नहीं।
वास्तव में लोकल टूल के लिए यह चरण केवल स्टैटिक एसेट अनुरोध दिखाएगा। इसके विपरीत, अगर एक फ़ॉर्मैट क्रिया POST /api/format उत्पन्न करती है
जिसका body आपका मूल टेक्स्ट है, तो पेज चाहे कुछ भी कहे, डेटा ब्राउज़र से पहले ही जा चुका है।
इस साइट के हर टूल का कार्यान्वयन शुद्ध फ़्रंट-एंड है, और बिल्ड आउटपुट में कोई सर्वर API नहीं है। ऑफ़लाइन जाने के बाद कैश हिट करते हुए रीफ़्रेश भी काम करता है, जो यह जानने का सबसे सीधा तरीका भी है कि कोई चीज़ "पूरी तरह लोकल" है या नहीं।
क्या मैं इसे ऑफ़लाइन भी उपयोग कर सकता हूँ?
हाँ, बशर्ते पेज एक बार लोड हो चुका हो।
साइट के एसेट पहली विज़िट पर ब्राउज़र कैश में डाउनलोड हो जाते हैं, इसलिए बाद में नेटवर्क न होने पर भी फ़ॉर्मैटिंग, minify, JSON5 रूपांतरण और JSONPath क्वेरी काम करती रहती हैं। केवल नेटवर्क पर निर्भर सुविधाएँ विफल होती हैं, जैसे नए संस्करण की जाँच या डेस्कटॉप इंस्टॉलर डाउनलोड करना।
ऑफ़लाइन परीक्षण यह सत्यापित करने का भी अच्छा तरीका है कि "डेटा कभी बाहर नहीं जाता": अगर डिस्कनेक्ट करते ही सब कुछ टूट जाए, तो हर क्रिया किसी सर्वर से बात कर रही थी।
क्या कोई डेटा लोकल रूप से संग्रहीत होता है? इसे कैसे साफ़ करूँ?
हाँ, लेकिन केवल वर्तमान ब्राउज़र के localStorage में, और केवल इतिहास व UI सेटिंग्स।
- इतिहास: उल्टे कालक्रम में अंतिम 100 संसाधित प्रविष्टियाँ, जिनका उपयोग पहले पेस्ट किए गए डेटा को वापस लाने के लिए होता है;
- UI सेटिंग्स: थीम, भाषा, इंडेंटेशन प्राथमिकताएँ, वगैरह;
- संग्रहीत नहीं: फ़ाइल खुद, अपलोड रिकॉर्ड, या पहचान रखने वाली कोई भी चीज़।
इसे साफ़ करने के तीन तरीके हैं, सबसे सीमित से सबसे व्यापक तक:
| तरीका | दायरा | कब उपयोग करें |
|---|---|---|
| इतिहास पेज पर "इतिहास साफ़ करें" | केवल इतिहास हटाता है, सेटिंग्स रखता है | संवेदनशील डेटा संभालने के बाद |
डेवलपर टूल में localStorage.clear() चलाएँ |
इस साइट का सारा लोकल डेटा | असामान्य सेटिंग्स का निदान करते समय |
| इस साइट के लिए ब्राउज़र "ब्राउज़िंग डेटा साफ़ करें" | कुकी, कैश और स्टोरेज एक साथ | साझा कंप्यूटर उपयोग करने से पहले |
साझा कंप्यूटर पर प्रोडक्शन डेटा संभालते समय, काम खत्म होने पर सिर्फ़ टैब बंद करने के बजाय इतिहास साफ़ करें — टैब बंद होने पर localStorage गायब नहीं होता।
चीनी अक्षर \u4e2d\u6587 में क्यों बदल गए?
क्योंकि "escape" सुविधा गैर-ASCII अक्षरों को Unicode escape अनुक्रमों में बदल देती है। यह जानबूझकर किया गया व्यवहार है, mojibake नहीं।
\u4e2d अक्षर 中 (U+4E2D) का कोड पॉइंट है। JSON में दोनों रूप अर्थ में समान हैं और एक ही स्ट्रिंग में पार्स होते हैं:
{
"escaped": "\u4e2d\u6587",
"plain": "中文"
}
कब escaping की ज़रूरत होती है? जब JSON को ऐसे पुराने सिस्टम में एम्बेड करना हो जो केवल ASCII स्वीकार करता है, उसे HTTP हेडर में लिखना हो, या किसी अन्य स्ट्रिंग के अंदर नेस्ट करना हो। कब ज़रूरत नहीं होती? ज़्यादातर API ट्रांसपोर्ट और फ़ाइल स्टोरेज में इसकी ज़रूरत नहीं होती; चीनी को सीधे UTF-8 के रूप में संग्रहीत करने से बाइट्स बचते हैं — एक चीनी अक्षर 3 बाइट्स का होता है, और escape होने पर 6 बाइट्स का।
अगर आप देखते हैं कि चीनी \u4e2d में बदल गया है, तो एन्कोडिंग खराब होने का संदेह करने से पहले जाँचें कि कहीं आपने "Escape" बटन तो नहीं दबाया।
2. फ़ाइलें और आकार
कितना फ़ाइल आकार समर्थित है?
ब्राउज़र की ओर कोई कठोर सीमा नहीं है; असली सीमाएँ तीन जगहों से आती हैं:
| चरण | मोटा अवरोध | लक्षण |
|---|---|---|
| टेक्स्ट बॉक्स में पेस्ट करना | 1–5 MB | पेस्ट के बाद इनपुट लैग करता है, कर्सर देर से चलता है |
JSON.parse |
50–100 MB | मुख्य थ्रेड कई सेकंड ब्लॉक रहता है, पेज अनरिस्पॉन्सिव |
| Tree रेंडरिंग | 10k–20k नोड | विस्तार करते समय फ़्रेम छूटते हैं, स्क्रॉल फ़्रीज़ होता है |
यानी कुछ दर्जन MB की फ़ाइल "पार्स हो सकती है" लेकिन "उपयोग करने लायक नहीं" होती है। जब आपको वाकई ऐसा डेटा संसाधित करना हो, तो सही कदम किसी अधिक शक्तिशाली ऑनलाइन टूल को खोजना नहीं, बल्कि स्ट्रीमिंग पर स्विच करना है (परफ़ॉर्मेंस और सुरक्षा FAQ देखें)।
अनुभव नियम: 2 MB से कम पर ऑनलाइन टूल सहज रहता है; 2–10 MB का अर्थ है एक-दो बार लैग स्वीकार करना; 10 MB से ऊपर लोकल स्क्रिप्ट को प्राथमिकता दें।
पेस्ट करने के बाद ब्राउज़र फ़्रीज़ हो जाता है। अब क्या करें?
पहले रीफ़्रेश न करें — रीफ़्रेश से सामग्री चली जाती है और आपको फिर पेस्ट करना पड़ता है। इस क्रम में बचाएँ:
- 10–30 सेकंड प्रतीक्षा करें। ज़्यादातर मामलों में मुख्य थ्रेड पार्स या रेंडर कर रहा होता है और अपने आप ठीक हो जाएगा;
- ठीक होने के बाद तुरंत "Minify" दृश्य पर स्विच करें या DOM नोड घटाने के लिए tree को संक्षिप्त करें;
- सामग्री को लोकल फ़ाइल में कॉपी करें और कमांड लाइन पर स्विच करें:
# सब कुछ लोड करने से बचने के लिए केवल पहली 100 पंक्तियों की संरचना देखें
head -c 200000 data.json | jq . | head -n 100
# स्ट्रीमिंग टूल से प्रविष्टियाँ गिनें, उन्हें मेमोरी में लोड किए बिना
jq -c '.items[]' data.json | wc -l
अगली बार बड़ी फ़ाइल मिलने पर पहले wc -c चलाकर बाइट संख्या देखें, फिर तय करें कि उसे ब्राउज़र में पेस्ट करना है या नहीं।
पेस्ट करने के बाद फ़ॉर्मैटिंग बदली क्यों नहीं?
तीन सामान्य कारण, आवृत्ति के क्रम में:
- इनपुट पहले से minified है और उसमें सिंटैक्स एरर नहीं हैं: फ़ॉर्मैटिंग केवल इंडेंटेशन समायोजित करती है, इसलिए अगर मूल वास्तव में दो पंक्तियों का है, तो बाद में भी दो पंक्तियों का रहेगा — स्ट्रिंग के अंदर के newlines विस्तारित नहीं होते;
- सामग्री JSON नहीं है: उदाहरण के लिए आपने JavaScript ऑब्जेक्ट लिटरल पेस्ट किया (बिना कोट के कुंजियाँ, सिंगल कोट्स), और पार्सर फ़ॉर्मैट करने के बजाय एरर बताता है;
- आपने गलत बटन क्लिक किया: minify और फ़ॉर्मैट विपरीत दिशाओं में जाते हैं, और minify सारा इंडेंटेशन हटा देता है।
कैसे पता करें: आउटपुट क्षेत्र के ऊपर-दाएँ कोने में अक्षर संख्या देखें। फ़ॉर्मैट करने के बाद संख्या बढ़नी चाहिए (अतिरिक्त इंडेंटेशन और newlines); अगर यह घट गई, तो आपने minify चलाया।
3. इनपुट और आउटपुट
मैं परिणाम को फ़ाइल में कैसे एक्सपोर्ट करूँ?
तीन तरीके, विश्वसनीयता के क्रम में:
| तरीका | क्रिया | कब उपयोग करें |
|---|---|---|
| डाउनलोड बटन | .json फ़ाइल बनाने के लिए "डाउनलोड" पर क्लिक करें |
बड़े परिणाम जिन्हें संग्रहीत करना है |
| क्लिपबोर्ड पर कॉपी | "कॉपी" पर क्लिक करें | छोटे परिणाम जिन्हें सीधे कोड में वापस पेस्ट करना है |
| मैन्युअल select-all कॉपी | आउटपुट क्षेत्र चुनें और Ctrl/Cmd + C दबाएँ |
कॉपी बटन विफल होने पर विकल्प |
डाउनलोड की गई फ़ाइल डिफ़ॉल्ट रूप से BOM के बिना UTF-8 एन्कोडेड होती है। यह महत्वपूर्ण है: BOM वाली JSON कई पार्सर में सीधे टूट जाती है (सिंटैक्स और फ़ॉर्मैट FAQ में BOM वाला भाग देखें)।
क्या JSON5 और JSONC समर्थित हैं?
हाँ, लेकिन "पार्सिंग" और "आउटपुट" में अंतर रखें।
- इनपुट की ओर आप JSON5 पेस्ट कर सकते हैं (सिंगल कोट्स, बिना कोट के कुंजियाँ, कमेंट, ट्रेलिंग कॉमा, हेक्साडेसिमल संख्याएँ) या JSONC (केवल कमेंट);
- आउटपुट की ओर आप मानक JSON में बदल सकते हैं, या मैन्युअल संपादन आसान बनाने के लिए मानक JSON को वापस JSON5 में बदल सकते हैं।
सिस्टम की सीमा पार करते समय हमेशा मानक JSON ही उत्पन्न करें। JSON5 इंसानों द्वारा कॉन्फ़िग लिखने का डायलेक्ट है; ऐसा रिक्वेस्ट body जिसका
Content-Type: application/json हो और जिसमें कमेंट या ट्रेलिंग कॉमा हों, सामान्यतः सर्वर द्वारा अस्वीकार कर दिया जाता है।
4. वातावरण और संगतता
क्या यह फ़ोन पर काम करता है?
हाँ। इंटरफ़ेस एक कॉलम में reflow हो जाता है, और फ़ॉर्मैटिंग, minify, diff और JSONPath सब बने रहते हैं।
लेकिन फ़ोन पर बड़ी फ़ाइलें संभालना खराब अनुभव है: सॉफ़्ट कीबोर्ड सामग्री ढक लेता है, टेक्स्ट चुनना कठिन होता है, और ऐप बदलते समय ब्राउज़र पेज को हटा सकता है, जिससे आपकी सामग्री चली जाती है। आपातकाल के लिए स्वीकार्य, लेकिन रोज़ाना डेस्कटॉप पर ही करें।
एक ही फ़ाइल Chrome में खुलती है लेकिन Safari में एरर क्यों देती है?
आमतौर पर यह ब्राउज़र का अंतर नहीं बल्कि एन्कोडिंग का अंतर होता है। इस क्रम में डीबग करें:
- BOM: Windows Notepad से सहेजी गई UTF-8 में BOM शामिल होता है, जिसे कुछ पार्सर सहन नहीं करते;
- Line endings: CRLF और LF मिलाने से JSON पर असर नहीं पड़ता, लेकिन बताई गई एरर लाइन संख्या खिसक जाती है, इसलिए लगता है कि "एरर की स्थिति गलत है";
- अदृश्य अक्षर: वेब पेज से कॉपी किए गए टेक्स्ट में zero-width spaces (U+200B) हो सकते हैं, आँख से अदृश्य लेकिन कुंजी मिलान तोड़ने के लिए काफ़ी।
एक कमांड से साफ़ पता चलता है:
# पहले 16 बाइट्स का hex देखें; शुरू में EF BB BF का अर्थ है BOM मौजूद है
head -c 16 data.json | xxd
5. त्वरित संदर्भ
| प्रश्न | निष्कर्ष |
|---|---|
| क्या यह डेटा अपलोड करता है | नहीं, सब कुछ ब्राउज़र में लोकल संसाधित होता है, और यह ऑफ़लाइन काम करता है |
| डेटा कहाँ संग्रहीत होता है | localStorage, केवल इतिहास और सेटिंग्स, कभी फ़ाइलें नहीं |
| कितना फ़ाइल आकार उचित है | 2 MB से कम पर सहज; 10 MB से ऊपर कमांड लाइन पर स्विच करें |
चीनी \u में बदल गया |
आपने escape क्लिक किया; समतुल्य लेकिन भारी, और आमतौर पर अनावश्यक |
| यह फ़्रीज़ हो गया, अब क्या | ठीक होने की प्रतीक्षा करें → tree संक्षिप्त करें → कॉपी करें और jq उपयोग करें |
| क्या एक्सपोर्ट BOM-मुक्त है | हाँ, BOM के बिना UTF-8 |
| क्या कमेंट समर्थित हैं | इनपुट की ओर JSON5/JSONC; मानक JSON ही उत्पन्न करें |