JSON फॉर्मेट करें

मान्य करें और JSON फॉर्मेट करें। इंटरैक्टिव ट्री व्यू। हमेशा के लिए मुफ्त।
इनपुट JSON
फॉर्मेट किया गया JSON
इनपुट JSON

निजी और सुरक्षित

सब कुछ आपके ब्राउज़र में होता है। आपकी फ़ाइलें हमारे सर्वर को कभी नहीं छूती हैं।

अत्यंत तेज़

कोई अपलोडिंग नहीं, कोई प्रतीक्षा नहीं। फ़ाइल छोड़ते ही कनवर्ट करें।

वास्तव में मुफ्त

कोई खाता आवश्यक नहीं। कोई छिपी हुई लागत नहीं। कोई फ़ाइल आकार की चाल नहीं।

JSON—JavaScript Object Notation—संरचित डेटा विनिमय के लिए सर्वव्यापी, पाठ-आधारित प्रारूप है। इसे IETF द्वारा RFC 8259 और Ecma International द्वारा ECMA-404के रूप में मानकीकृत किया गया है, जो मिलकर आधुनिक API, लॉग, कॉन्फ़िग और डेटाबेस को शक्ति देने वाले कॉम्पैक्ट, भाषा-अज्ञेयवादी सिंटैक्स को परिभाषित करते हैं।

सिंटैक्स और एन्कोडिंग: सटीक बिट्स जो सिस्टम को बात करते रहते हैं

एक JSON मान या तो एक ऑब्जेक्ट, ऐरे, स्ट्रिंग, नंबर, या शाब्दिक true, false, या null में से एक है; ऑब्जेक्ट स्ट्रिंग्स को मानों पर मैप करते हैं और ऐरे क्रमबद्ध मान रखते हैं—संरचनात्मक वर्णों के आसपास महत्वहीन व्हाइटस्पेस की अनुमति है (RFC 8259, ECMA-404)। यद्यपि JSON जावास्क्रिप्ट से उत्पन्न हुआ है, यह भाषा-स्वतंत्र है और लगभग हर जगह समर्थित है (MDN: JSON)। तार पर, वास्तविक और अनुशंसित एन्कोडिंग UTF-8 है (RFC 8259 §8.1)। अतिरिक्त इंटरॉप सुरक्षा के लिए, I-JSON प्रोफ़ाइल (RFC 7493) एन्कोडिंग और संख्यात्मक श्रेणियों के आसपास के नियमों को कसता है।

जावास्क्रिप्ट में, वैश्विक JSON ऑब्जेक्ट दो वर्कहॉर्स को उजागर करता है:JSON.parse (एक वैकल्पिक reviver के साथ) और JSON.stringify (सुंदर मुद्रण के लिए रिप्लेसर/स्पेसिंग के साथ), जैसा कि MDN पर प्रलेखित है (parse, stringify)।

संख्याएँ: भ्रामक रूप से सरल, आश्चर्यजनक रूप से तेज

JSON की संख्या व्याकरण दशमलव है, लेकिन युक्ति परिशुद्धता या पूर्णांक/फ्लोट भेद को निर्धारित नहीं करती है। कार्यान्वयन उन्हें कैसे प्रस्तुत करना है यह चुनते हैं (RFC 8259 §6)। जावास्क्रिप्ट और Node.js में, Number IEEE-754 डबल परिशुद्धता है, जिसका अर्थ है कि केवल [−(2^53−1), 2^53−1] में पूर्णांक ही बिल्कुल सुरक्षित हैं—देखें Number.MAX_SAFE_INTEGER और BigInt प्रकार। यही कारण है कि सार्वजनिक API अक्सर ID को स्ट्रिंग के रूप में भेजते हैं और "सुरक्षित पूर्णांक" को स्पष्ट रूप से मान्य करते हैं।

वेनिला JSON से परे: पॉइंटर्स, पैच और मर्ज-पैच

जैसे-जैसे उपयोग परिपक्व हुआ, JSON को संबोधित करने और संशोधित करने के लिए मानक उभरे। JSON पॉइंटर (RFC 6901) मानों का पता लगाने के लिए एक छोटा, स्लैश-सीमांकित सिंटैक्स है (उदाहरण के लिए, /a/b/0) जिसमें ~ और / के लिए एस्केपिंग नियम हैं। JSON पैच (RFC 6902) आंशिक अपडेट को क्रमबद्ध संचालन (add, remove, replace, move, copy, test) के रूप में मॉडल करता है और application/json-patch+json के रूप में यात्रा करता है। सरल अंतर के लिए, JSON मर्ज पैच (RFC 7386) एक दस्तावेज़-आकार का मर्ज का उपयोग करता है: वर्तमान फ़ील्ड जोड़े/बदले जाते हैं; एक फ़ील्ड को null पर सेट करने से यह हट जाता है। कई फ्रेमवर्क बॉक्स से बाहर एक या दोनों रूपों का समर्थन करते हैं।

स्कीमा और प्रकार: मान्य करना और उत्पन्न करना

JSON स्वयं स्कीमा-रहित है, लेकिन पारिस्थितिक तंत्र सत्यापन, दस्तावेज़ीकरण और कोडजेन के लिए स्कीमा पर निर्भर करते हैं। JSON स्कीमा 2020-12 परिवार type, properties, items, और संरचना कीवर्ड जैसी बाधाओं को निर्दिष्ट करता है, और OpenAPI 3.1के साथ संरेखित होता है। कोड-जनरेशन-केंद्रित वर्कफ़्लो के लिए, JSON प्रकार परिभाषा (RFC 8927) एक जानबूझकर कम अभिव्यंजक भाषा प्रदान करता है जो मुख्यधारा के प्रकार प्रणालियों के लिए अनुमानित रूप से मैप करता है।

स्ट्रीमिंग और बड़ा डेटा: JSON लाइनें और अनुक्रम

क्लासिक JSON प्रति पेलोड एक पूर्ण पाठ की अपेक्षा करता है, जो स्ट्रीमिंग लॉग और लंबे समय तक चलने वाली प्रतिक्रियाओं को जटिल बनाता है। दो पैटर्न मदद करते हैं:

  • JSON पाठ अनुक्रम (RFC 7464): UTF-8 JSON ग्रंथों की एक धारा, प्रत्येक को रिकॉर्ड सेपरेटर (U+001E) द्वारा उपसर्ग किया गया है और LF के साथ समाप्त हुआ है; application/json-seq के रूप में पंजीकृत है।
  • NDJSON / JSON लाइनें: प्रत्येक पंक्ति एक स्टैंडअलोन JSON मान है—टेल, gzip, और मैप-रिड्यूस करना आसान है (ndjson.org, jsonlines.org)। यह बल्क API में लोकप्रिय है, जैसे, Elasticsearch का बल्क API

बाइनरी चचेरे भाई: जब पाठ पर्याप्त कॉम्पैक्ट नहीं होता है

जब बैंडविड्थ या गति हावी होती है, तो "बाइनरी JSON" प्रारूप JSON के डेटा मॉडल को संरक्षित करते हैं जबकि दक्षता के लिए मानव पठनीयता का व्यापार करते हैं:

  • BSON (MongoDB का मूल प्रारूप) बाइनरी, डेटाइम, और टाइप किए गए पूर्णांक जैसे प्रकार जोड़ता है (bsonspec.org)।
  • MessagePack कॉम्पैक्ट और स्कीमा-मुक्त है, व्यापक रूप से भाषाओं में लागू किया गया है (msgpack.org)।
  • CBOR एक विस्तारणीय, कॉम्पैक्ट प्रारूप ( JSON ट्रांसकोडिंग मार्गदर्शन के साथ) को मानकीकृत करता है और IoT/विवश संदर्भों में आम है (RFC 8949, cbor.io)।
  • Smile (जैक्सन पारिस्थितिकी तंत्र से) JSON को दोहराए गए नामों/मानों के लिए वैकल्पिक बैक-संदर्भों के साथ एन्कोड करता है (jackson-dataformat-smile)।

सुरक्षा नोट: पुरानी चालें और आधुनिक सुधार

क्योंकि JSON सिर्फ पाठ है, अधिकांश जोखिम इस बात से आते हैं कि आप इसे कैसे परिवहन और संभालते हैं:

  • JSONP (<script> के माध्यम से डेटा का अनुरोध करना एक कॉलबैक के साथ) क्रॉस-ओरिजिन अनुरोधों के लिए एक प्री-CORS वर्कअराउंड था लेकिन खतरनाक है—यह मनमाना स्क्रिप्ट निष्पादित करता है। CORS को वास्तविक application/json प्रतिक्रियाओं के साथ पसंद करें (OWASP: JSONP दुरुपयोग)।
  • JSON अपहरण: संवेदनशील सरणियों को लौटाने वाले भोले GET समापन बिंदु पुराने ब्राउज़रों में क्रॉस-ओरिजिन स्क्रिप्ट टैग के माध्यम से चुराए जा सकते हैं; शमन में CSRF सुरक्षा के साथ POST या एक गैर-JSON प्रहरी के साथ उपसर्ग करना शामिल है (OWASP: JSON अपहरण)।
  • JSON इंजेक्शन: JSON को डेटा के रूप में मानें, कोड के रूप में नहीं; परिश्रम से एस्केप करें और इनपुट को मान्य करें (OWASP: JSON इंजेक्शन)।

मीडिया प्रकार और विरासत

JSON ने RFC 4627 (2006)के तहत शुरुआत की; पंजीकृत मीडिया प्रकार application/jsonहै, जिसका विनिर्देश अब RFC 8259की ओर इशारा करता है। JSON प्रतिक्रियाओं पर "Charset" पैरामीटर आमतौर पर अनावश्यक होते हैं क्योंकि UTF-8 सार्वजनिक इंटरनेट पर डिफ़ॉल्ट है।

उत्पादन में मजबूत JSON के लिए व्यावहारिक सुझाव

  • हर जगह UTF-8 पर डिफ़ॉल्ट; इनपुट और आउटपुट पर UTF-8 मानें (RFC 8259 §8.1)।
  • बड़े पूर्णांकों के साथ स्पष्ट रहें: यदि कोई ID 2^53−1 से अधिक हो सकता है, तो उसे एक स्ट्रिंग के रूप में भेजें और इसे प्रलेखित करें (MDN: MAX_SAFE_INTEGER)।
  • JSON स्कीमा 2020-12(याJTDकोडजेन-भारी स्टैक के लिए) के साथ पेलोड को मान्य करें। अपने API डॉक्स के बगल में स्कीमा प्रकाशित करें (OpenAPI 3.1)।
  • बुद्धिमानी से पैच करें: ऑपरेशन-स्तरीय अंतर के लिए JSON पैच और सरल दस्तावेज़-आकार के अपडेट के लिए मर्ज पैच का उपयोग करें।
  • बड़े पैमाने पर स्ट्रीम करें: JSON पाठ अनुक्रम या NDJSON को लॉग और लंबे समय तक चलने वाली प्रतिक्रियाओं के लिए चुनें; मीडिया प्रकार को स्पष्ट करें।
  • बाइनरी के लिए पहुंचें ( BSON, MessagePack, CBOR, Smile) जब पाठ बाधा हो—लेकिन सुनिश्चित करें कि दोनों छोर प्रकारों पर सहमत हों।

"मित्रवत JSON" पर एक त्वरित शब्द

डेवलपर्स अक्सर कॉन्फ़िग में टिप्पणियां, अनुगामी अल्पविराम, या एकल-उद्धृत स्ट्रिंग्स चाहते हैं। यह मानक JSON के बाहर है, लेकिन JSON5 मानव-संपादित फ़ाइलों के लिए एक अच्छी तरह से प्रलेखित सुपरसेट प्रदान करता है। जब तक आप दोनों सिरों को नियंत्रित नहीं करते, तब तक सार्वजनिक API पर JSON5 भेजने से बचें।


JSON की सफलता एक छोटे सतह क्षेत्र, व्यापक भाषा समर्थन, और आसन्न मानकों की एक अंगूठी—पॉइंटर्स, पैचिंग, स्कीमा, अनुक्रम—से आती है जो वितरित प्रणालियों की गन्दी वास्तविकताओं को कवर करती है। मूल सिद्धांतों (सिंटैक्स, एन्कोडिंग, संख्याएं) को समझें, सही आसन्न मानकों पर झुकें, और यह स्टैक और सेवाओं में लाभांश का भुगतान करता रहेगा (RFC 8259, ECMA-404, RFC 6901, RFC 6902, RFC 7386, JSON Schema, JTD, RFC 7464, NDJSON)।

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

JSON क्या है?

JSON (जावास्क्रिप्ट ऑब्जेक्ट नोटेशन) एक हल्का डेटा-इंटरचेंज प्रारूप है जो मनुष्यों के लिए पढ़ना और लिखना आसान है और मशीनों के लिए पार्स और जेनरेट करना आसान है। यह वेब अनुप्रयोगों में डेटा संचारित करने के लिए व्यापक रूप से उपयोग किया जाता है।

मुझे JSON को फॉर्मेट करने की आवश्यकता क्यों है?

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

JSON वैलिडेशन क्या करता है?

JSON वैलिडेशन जांचता है कि आपकी JSON स्ट्रिंग JSON विनिर्देश के अनुरूप है या नहीं। यह सिंटेक्स त्रुटियों की पहचान करता है जैसे कि लापता अल्पविराम, बिना बंद ब्रैकेट, या अनुचित उद्धरण, आपको जल्दी त्रुटियों को पकड़ने में मदद करता है।

कोड व्यू और ट्री व्यू में क्या अंतर है?

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

क्या मेरा JSON डेटा सुरक्षित है?

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

क्या मैं JSON फ़ाइल अपलोड कर सकता हूं?

हां, आप 'फ़ाइल खोलें' बटन का उपयोग करके JSON फ़ाइल अपलोड कर सकते हैं। उपकरण फ़ाइल को पढ़ेगा और तुरंत फॉर्मेट किए गए आउटपुट को प्रदर्शित करेगा।

सामान्य JSON त्रुटियां क्या हैं?

सामान्य JSON त्रुटियों में शामिल हैं: कुंजी-मान जोड़े के बीच लापता अल्पविराम, स्ट्रिंग्स के लिए डबल कोट्स के बजाय सिंगल कोट्स का उपयोग, ट्रेलिंग कॉमा, बिना बंद ब्रैकेट या ब्रेसेस, और बिना उद्धरण कुंजी।

क्या मैं फॉर्मेट किए गए JSON को कॉपी कर सकता हूं?

हां, फॉर्मेट किए गए JSON को अपने क्लिपबोर्ड पर कॉपी करने के लिए 'कॉपी करें' बटन का उपयोग करें। यह साफ किए गए JSON को आपके कोड या दस्तावेज़ में पेस्ट करने के लिए उपयोगी है।