ऑनलाइन JSON को फ़ॉर्मेट और सत्यापित कैसे करें
यदि आप API, कॉन्फ़िगरेशन फ़ाइलों, या किसी भी प्रकार के संरचित डेटा के साथ काम करते हैं, तो आप नियमित रूप से JSON से निपटते हैं। और यदि आपने कभी कोई गुम कोष्ठक खोजने की कोशिश में मिनिफाइड JSON की दीवार को घूरा है, तो आप जानते हैं कि फॉर्मेटिंग क्यों मायने रखती है। ब्राउज़र-आधारित फॉर्मेटर पूरा काम स्थानीय रूप से संभालता है, आपके डेटा को सर्वर पर अपलोड किए बिना।
JSON फॉर्मेटिंग क्या करती है
API प्रतिक्रिया या एक मिनिफाइड फ़ाइल से कच्चा JSON ऐसा दिखता है:
{"users":[{"name":"Alice","age":30,"roles":["admin","editor"]},{"name":"Bob","age":25,"roles":["viewer"]}]}
एक फॉर्मेटर इसे पठनीय कुछ में बदल देता है:
{
"users": [
{
"name": "Alice",
"age": 30,
"roles": ["admin", "editor"]
},
{
"name": "Bob",
"age": 25,
"roles": ["viewer"]
}
]
}
वही डेटा, लेकिन अब आप वास्तव में इसे पढ़ सकते हैं, त्रुटियों को देख सकते हैं, और संरचना को समझ सकते हैं।
JSON को ऑनलाइन कैसे फॉर्मेट करें
- अपना JSON पेस्ट करें इनपुट फ़ील्ड में। फॉर्मेटर तुरंत सिंटैक्स त्रुटियों का पता लगाएगा और संरचना को सत्यापित करेगा।
- अपनी इंडेंटेशन चुनें: 2 या 4 स्पेस का चयन करें, या JSON को एक लाइन में संपीड़ित करने के लिए मिनिफाई पर क्लिक करें।
- परिणाम कॉपी करें: फॉर्मेट किए गए आउटपुट में रंग-कोडित सिंटैक्स हाइलाइटिंग शामिल है। इसे अपने कोड, कॉन्फ़िगरेशन फ़ाइल, या दस्तावेज़ में उपयोग के लिए कॉपी करें।
JSON का संक्षिप्त इतिहास
JSON (JavaScript Object Notation) को 2001 में Douglas Crockford द्वारा निर्दिष्ट किया गया था, औपचारिक रूप से RFC 4627 (2006) में प्रलेखित किया गया, और 2013 में ECMA-404 और 2017 में ISO/IEC 21778 के रूप में मानकीकृत किया गया। Crockford ने JSON का आविष्कार नहीं किया: उन्होंने इसे JavaScript ऑब्जेक्ट लिटरल सिंटैक्स के उपसमुच्चय से निकाला जो पहले से ही उपयोग में था, और इसे एक नाम साथ ही json.org पर एक एकल-पृष्ठ विनिर्देश दिया।
JSON ने जल्दी से वेब API के लिए XML को विस्थापित कर दिया क्योंकि यह नाटकीय रूप से सरल है। एक XML प्रतिक्रिया खुलने/बंद होने वाले टैग के साथ वर्बोज़ है; समकक्ष JSON आधे आकार का है। ब्राउज़र JSON को मूल रूप से पार्स कर सकते हैं (2009 में ECMAScript 5 से JSON.parse, JSON.stringify) बिना XML पार्सर की आवश्यकता के।
2015 तक, दुनिया में हर प्रमुख API JSON बोलती थी: REST API, GraphQL क्वेरीज़, WebSocket संदेश, कॉन्फ़िगरेशन फ़ाइलें (package.json, tsconfig.json, .vscode/settings.json), और यहां तक कि डेटाबेस (PostgreSQL JSONB, MongoDB BSON जो JSON जैसा है)। यह वेब पर संरचित डेटा की लिंगुआ फ्रांका बन गया।
JSON की सादगी भी इसकी सीमा है: कोई टिप्पणियाँ नहीं, कोई अनुगामी अल्पविराम नहीं, कोई दिनांक प्रकार नहीं, कोई बाइनरी समर्थन नहीं। इन अंतरालों को संबोधित करने के लिए कई JSON वेरिएंट उभरे (नीचे «वैकल्पिक JSON-जैसे प्रारूप» देखें)।
सामान्य JSON त्रुटियाँ और उन्हें कैसे पहचानें
अधिकांश JSON त्रुटियाँ कुछ सामान्य गलतियों तक उबल जाती हैं:
- लापता या अतिरिक्त अल्पविराम: एक सरणी या ऑब्जेक्ट में अंतिम आइटम के बाद एक अल्पविराम JSON में अमान्य है (JavaScript के विपरीत)
- उद्धरण न दी गई कुंजी: JSON को सभी कुंजियों के चारों ओर दोहरे उद्धरण की आवश्यकता है:
"name"न किname - एकल उद्धरण: JSON केवल दोहरे उद्धरण स्वीकार करता है:
"value"न कि'value' - अनुगामी अल्पविराम:
{"a": 1,}अमान्य है; अंतिम प्रविष्टि के बाद अल्पविराम हटा दें - टिप्पणियाँ: JSON
// लाइनया/* ब्लॉक */टिप्पणियों का समर्थन नहीं करता; अधिकांश पार्सर उन्हें अस्वीकार करते हैं - Undefined / NaN / Infinity: JSON केवल संख्याओं, स्ट्रिंग्स, बूलियन, null, सरणियों और ऑब्जेक्ट्स की अनुमति देता है।
undefined,NaN, याInfinityजैसे JavaScript मान मान्य नहीं हैं - फ़ंक्शन मान: एक फ़ंक्शन संदर्भ JSON में प्रकट नहीं हो सकता
- हेक्स या ऑक्टल संख्याएँ: केवल दशमलव संख्याएँ मान्य हैं (
0xFFऔर0o17नहीं हैं) - अग्रणी शून्य:
01JSON में अमान्य है;1का उपयोग करें - हेक्साडेसिमल एस्केप: स्ट्रिंग्स में केवल
\uUnicode एस्केप की अनुमति है,\xया\0की नहीं - डुप्लिकेट कुंजियाँ: तकनीकी रूप से कल्पना के अनुसार मान्य, लेकिन अधिकांश पार्सर चुपचाप अंतिम मान का उपयोग करते हैं; इस पर अपने जोखिम पर भरोसा करें
- UTF-8 BOM: एक फ़ाइल की शुरुआत में एक बाइट-ऑर्डर मार्क मान्य JSON नहीं है और सख्त पार्सर को तोड़ देता है
- अनुगामी व्हाइटस्पेस या सामग्री: समापन
]या}के बाद कोई भी टेक्स्ट दस्तावेज़ को अमान्य कर देता है
एक अच्छा फॉर्मेटर ठीक वहीं हाइलाइट करता है जहां त्रुटि है, ताकि आप अनुमान लगाने के बजाय इसे तुरंत ठीक कर सकें।
JSON डेटा प्रकार
JSON में ठीक 6 डेटा प्रकार हैं:
| प्रकार | उदाहरण | नोट्स |
|---|---|---|
| स्ट्रिंग | "hello" | हमेशा दोहरे उद्धरण, \n, \t, \\, \", \uXXXX का समर्थन करता है |
| संख्या | 42, 3.14, -1e10 | कोई NaN या Infinity नहीं, कोई अग्रणी शून्य नहीं |
| बूलियन | true, false | केवल लोअरकेस |
| null | null | केवल लोअरकेस |
| सरणी | [1, 2, 3] | क्रमबद्ध, कोई भी प्रकार, अल्पविराम-पृथक |
| ऑब्जेक्ट | {"key": "value"} | कुंजियाँ उद्धृत स्ट्रिंग्स होनी चाहिए, अल्पविराम-पृथक |
विशेष रूप से लापता: दिनांक (ISO 8601 स्ट्रिंग्स का उपयोग करें), बाइनरी डेटा (Base64 स्ट्रिंग्स का उपयोग करें), टिप्पणियाँ (एक अलग दस्तावेज़ीकरण फ़ील्ड का उपयोग करें), और bigint (JSON संख्याएँ डबल-प्रिसिजन हैं; >= 2^53 मान सटीकता खो देते हैं)।
कब फॉर्मेट करें बनाम मिनिफाई करें
फॉर्मेट (प्रिटी-प्रिंट) जब आपको आवश्यकता हो:
- डेटा पढ़ें और समझें
- API प्रतिक्रियाओं को डिबग करें
- कॉन्फ़िगरेशन फ़ाइलों को संपादित करें
- सहकर्मियों के साथ JSON साझा करें
- संस्करण नियंत्रण के लिए प्रतिबद्ध करें (साफ डिफ्स)
मिनिफाई जब आपको आवश्यकता हो:
- नेटवर्क पर डेटा भेजें (छोटा पेलोड = तेज़ स्थानांतरण)
- JSON को डेटाबेस या लॉग में स्टोर करें जहाँ पठनीयता मायने नहीं रखती
- JSON को URL पैरामीटर या फॉर्म फ़ील्ड में एम्बेड करें
- कॉम्पैक्ट API प्रतिक्रियाएँ उत्पन्न करें
आकार में अंतर महत्वपूर्ण है: एक विशिष्ट 50 KB प्रिटी-प्रिंटेड JSON लगभग 30 KB तक मिनिफाई करता है। उच्च-ट्रैफ़िक API के लिए, मिनिफाइड प्रतिक्रियाएँ बैंडविड्थ बचाती हैं। मानव-संपादित फ़ाइलों के लिए, फॉर्मेटेड आवश्यक है।
वैकल्पिक JSON-जैसे प्रारूप
जब JSON की सख्ती समस्या है, तो कई वेरिएंट नियमों को आराम देते हैं:
| प्रारूप | JSON पर जोड़ता है | सर्वोत्तम उपयोग |
|---|---|---|
| JSON5 | टिप्पणियाँ, अनुगामी अल्पविराम, एकल उद्धरण, उद्धरण न दी गई कुंजियाँ | कॉन्फ़िगरेशन फ़ाइलें जहां मनुष्य संपादित करते हैं |
| JSONC | केवल टिप्पणियाँ (// और /* */) | VS Code सेटिंग्स, tsconfig.json |
| HJSON | टिप्पणियाँ, उद्धरण न दी गई स्ट्रिंग्स, मल्टी-लाइन स्ट्रिंग्स | मानव-अनुकूल कॉन्फ़िगरेशन |
| JSON Lines (NDJSON) | प्रति पंक्ति एक JSON ऑब्जेक्ट, कोई संलग्न सरणी नहीं | लॉग फ़ाइलें, स्ट्रीमिंग |
| YAML | इंडेंटेशन-आधारित, टिप्पणियाँ, एंकर, संदर्भ | Kubernetes, GitHub Actions |
| TOML | INI-जैसा सिंटैक्स, दिनांक, टिप्पणियाँ | Cargo.toml, pyproject.toml |
| BSON | अतिरिक्त प्रकारों (Date, ObjectId, Binary) के साथ बाइनरी JSON | MongoDB आंतरिक भंडारण |
| CBOR (RFC 8949) | आकार के लिए अनुकूलित बाइनरी प्रारूप | विवश-डिवाइस API |
| MessagePack | बाइनरी JSON-जैसा, कॉम्पैक्ट | आंतरिक API क्रमबद्धता |
डेटा इंटरचेंज (API प्रतिक्रियाएँ, कॉन्फ़िगरेशन) के लिए, सख्त JSON पर ही रहें। मानव-संपादित कॉन्फ़िगरेशन के लिए, JSON5 या JSONC अधिक अनुकूल हैं। डेटा स्ट्रीमिंग के लिए, NDJSON वास्तविक मानक है।
सामान्य चूक
- संख्याएं सटीकता खोती हैं: JSON संख्याएँ IEEE 754 डबल हैं। 2^53 (9,007,199,254,740,992) से बड़े पूर्णांक सटीकता खो देते हैं। बड़े ID को स्ट्रिंग के रूप में प्रेषित करें (
"id": "12345678901234567890")। - संपादकों द्वारा यूनिकोड एस्केप विकृत: कुछ संपादक सहेजने पर वर्णों को स्वचालित रूप से परिवर्तित करते हैं, जिससे पार्सर अप्रत्याशित रूप से व्यवहार कर सकते हैं। हर जगह UTF-8 का उपयोग करें।
- तिथियों को गलत तरीके से प्रिटी-प्रिंट करना: ISO 8601 स्ट्रिंग के रूप में तिथियाँ (
"2026-05-20T13:00:00Z") मानक हैं। स्ट्रिंग के रूप में यूनिक्स टाइमस्टैम्प से बचें; वे संख्याओं की तरह दिखते हैं लेकिन आमतौर पर तिथियाँ होने का इरादा रखते हैं। - कुंजी में व्हाइटस्पेस:
{"first name": "..."}मान्य JSON है लेकिन कई ORM और कोड जनरेटर को तोड़ देता है जो पहचानकर्ता-सुरक्षित कुंजी की अपेक्षा करते हैं। - खाली मान बनाम लापता कुंजी:
{"a": null}और{}(कोईaनहीं) अलग-अलग चीजें हैं। एक सम्मेलन चुनें और इसे दस्तावेज़ करें। - Bigint बेमेल: JSON संख्याओं के रूप में क्रमबद्ध PostgreSQL bigint स्तंभ सटीकता खो सकते हैं। 2^53 से ऊपर के ID के लिए स्ट्रिंग्स का उपयोग करें।
- अनुगामी न्यूलाइन: कुछ उपकरण समापन ब्रेस के बाद अनुगामी न्यूलाइन जोड़ते हैं; कुछ सख्त पार्सर इसे अस्वीकार करते हैं। JSON-stringify अनुगामी न्यूलाइन उत्पन्न नहीं करता।
- एन्कोडिंग बेमेल: JSON विनिर्देश UTF-8 (या BOM के साथ UTF-16/UTF-32) की मांग करता है। गैर-ASCII वर्णों वाला Latin-1 विफल होता है। हमेशा UTF-8 के रूप में क्रमबद्ध करें।
- JSON में स्ट्रिंगिफाइड JSON: नेस्टेड एस्केप वर्ण जल्दी से अप्रबंधनीय हो जाते हैं। ऑब्जेक्ट को सीधे नेस्ट करें या एक base64-एन्कोडेड JSON सम्मेलन चुनें।
- स्रोत फ़ाइल में टिप्पणियाँ: यदि आप JSONC या JSON5 को एक ऐसी प्रणाली में जांचते हैं जो सख्त JSON की अपेक्षा करती है, तो पार्सिंग विफल हो जाती है। अपने बिल्ड चरण में सख्त JSON में परिवर्तित करें।
JSON के साथ काम करने के लिए सुझाव
- भेजने से पहले मान्य करें: यदि आप मैन्युअल रूप से एक API अनुरोध बना रहे हैं, तो पहले अपने JSON को एक सत्यापनकर्ता में पेस्ट करें। एक गलत स्थान पर अल्पविराम सर्वर पक्ष पर भ्रामक त्रुटियाँ पैदा कर सकता है।
- गहराई से नेस्टेड डेटा के लिए 2-स्पेस इंडेंटेशन का उपयोग करें। यह पंक्तियों को छोटा रखता है और संरचना को स्कैन करना आसान बनाता है।
- टूल को बुकमार्क करें: यदि आप नियमित रूप से JSON के साथ काम करते हैं, तो एक क्लिक दूर एक फॉर्मेटर होने से हर बार खोजने की तुलना में समय बचता है।
- कमांड-लाइन काम के लिए jq का उपयोग करें:
jq(औरgron,dasel,yqजैसे jq-भाषा विकल्प) कमांड लाइन पर JSON को फ़िल्टर और रूपांतरित करने के लिए आवश्यक हैं। - सत्यापन के लिए JSON स्कीमा का उपयोग करें: महत्वपूर्ण प्रारूपों (API अनुबंध, कॉन्फ़िगरेशन फ़ाइलें) के लिए, एक JSON स्कीमा परिभाषित करें और उसके खिलाफ सत्यापित करें। ajv (JavaScript), python-jsonschema, या VS Code की अंतर्निहित स्कीमा सत्यापन जैसे उपकरण आकार त्रुटियों को रोकते हैं।
- API अनुरोधों के लिए Postman या Insomnia का उपयोग करें: इन उपकरणों में अंतर्निहित JSON फॉर्मेटर और सत्यापनकर्ता, सिंटैक्स हाइलाइटिंग और अनुरोध इतिहास हैं।
- अपने कोडबेस में prettier के माध्यम से JSON चलाएं: Prettier JSON को लगातार फॉर्मेट करता है; इसे एक प्री-कमिट हुक के रूप में एकीकृत करें ताकि फॉर्मेटिंग कभी भी कोड समीक्षा की चिंता न हो।
- डिफिंग के लिए, पहले कुंजी सॉर्ट करें: JSON ऑब्जेक्ट कुंजियाँ अनॉर्डर्ड हैं।
{"a":1,"b":2}बनाम{"b":2,"a":1}का डिफ सब कुछ बदला दिखाता है जब तक कि आप पहले कुंजी सॉर्ट नहीं करते।jq -Sया समान का उपयोग करें।
गोपनीयता और गोपनीय JSON
JSON फॉर्मेटर पूरी तरह से आपके ब्राउज़र में चलता है। आप जो JSON पेस्ट करते हैं, मध्यवर्ती प्रसंस्करण, और फॉर्मेटेड आउटपुट सभी आपके डिवाइस पर रहते हैं। कुछ भी सर्वर पर अपलोड नहीं किया जाता, लॉग नहीं किया जाता, या किसी के साथ साझा नहीं किया जाता।
यह महत्वपूर्ण है क्योंकि JSON में अक्सर अत्यंत संवेदनशील डेटा होता है: ग्राहक रिकॉर्ड और ईमेल पतों वाली API प्रतिक्रियाएं, प्रमाणीकरण टोकन और सत्र डेटा, उत्पाद आर्किटेक्चर को प्रकट करने वाले आंतरिक API स्कीमा, डेटाबेस पासवर्ड वाली कॉन्फ़िगरेशन फ़ाइलें, लेखा API से वित्तीय डेटा, FHIR API से चिकित्सा रिकॉर्ड, HR API से आंतरिक कंपनी संरचना, बुनियादी ढांचे को प्रकट करने वाले स्टैक ट्रेस वाले डिबग पेलोड। क्लाउड JSON फॉर्मेटर अपने अनुरोध लॉग में प्रत्येक पेस्ट को रिकॉर्ड करते हैं, कभी-कभी «सेवा सुधार» के लिए उन्हें बनाए रखते हैं, और वास्तविक घटनाओं में शामिल रहे हैं जहाँ पेस्ट की गई API प्रतिक्रियाओं ने ग्राहक डेटा और API कुंजियाँ लीक कर दीं। ब्राउज़र-आधारित फॉर्मेटर में शून्य एक्सपोज़र है: JSON कभी आपकी मशीन नहीं छोड़ता।
ब्राउज़र-आधारित फॉर्मेटिंग पृष्ठ लोड होने के बाद ऑफ़लाइन भी काम करती है, हवाई जहाज़ों पर, इंटरनेट एक्सेस के बिना सुरक्षित वातावरण में, या कहीं भी जहाँ आप API डेटा (विशेष रूप से एम्बेडेड क्रेडेंशियल के साथ) को किसी तृतीय पक्ष सेवा में पेस्ट नहीं कर सकते या नहीं करना चाहिए, JSON को फॉर्मेट करने के लिए उपयोगी।
अक्सर पूछे जाने वाले प्रश्न
क्या फ़ॉर्मेटर बड़ी JSON फ़ाइलें संभाल सकता है?
हाँ। चूँकि टूल आपके ब्राउज़र में चलता है, यह हज़ारों पंक्तियों वाली फ़ाइलों को प्रोसेस कर सकता है। प्रदर्शन आपके डिवाइस पर निर्भर करता है, लेकिन अधिकांश आधुनिक ब्राउज़र बिना किसी समस्या के बड़े JSON को संभालते हैं।
क्या यह ऑफ़लाइन काम करता है?
हाँ। एक बार पेज लोड होने के बाद, टूल बिना इंटरनेट कनेक्शन के पूरी तरह आपके ब्राउज़र में काम करता है। सारी प्रोसेसिंग स्थानीय रूप से JavaScript में होती है।
फ़ॉर्मेट करने और सत्यापित करने में क्या अंतर है?
फ़ॉर्मेट करना JSON को पठनीय बनाने के लिए इंडेंटेशन और पंक्ति विराम जोड़ता है। सत्यापन जाँचता है कि JSON संरचना सही है, संतुलित ब्रेस, सही उद्धरण, वैध प्रकार। अधिकांश फ़ॉर्मेटर एक ही समय में दोनों करते हैं।
क्या मैं इसे अपने फ़ोन पर उपयोग कर सकता हूँ?
हाँ। टूल किसी भी आधुनिक ब्राउज़र वाले डिवाइस पर काम करता है, जिसमें फ़ोन और टैबलेट शामिल हैं।