इस लेख में
JSON5 क्या है?
JSON5, JSON का एक सुपरसेट है जो ECMAScript 5.1 सिंटैक्स से प्रेरित विशेषताएँ जोड़ता है। इसे JSON को कॉन्फ़िगरेशन फ़ाइलों और अन्य ऐसे मामलों के लिए अधिक मानव-अनुकूल बनाने के लिए बनाया गया था जहाँ लोग हाथ से JSON लिखते और पढ़ते हैं। प्रत्येक वैध JSON दस्तावेज़ एक वैध JSON5 भी होता है, लेकिन JSON5 कमेंट, ट्रेलिंग कॉमा, बिना कोट वाली कुंजियाँ, और अन्य सुविधाएँ जोड़ता है।
JSON5 विनिर्देश 2018 में अंतिम रूप दिया गया था और JavaScript टूलिंग में व्यापक रूप से अपनाया गया है। Babel, Next.js, और Webpack जैसे बिल्ड टूल JSON5 कॉन्फ़िगरेशन फ़ाइलें स्वीकार करते हैं। JSON5 को मानक JSON में बदलना तब आवश्यक होता है जब उन सिस्टम के साथ अंतर-संचालन करना हो जो केवल सख़्त JSON समझते हैं, जैसे API, डेटाबेस, और अधिकांश प्रोग्रामिंग भाषाएँ।
JSON5 की विशेषताएँ समझाई गईं
JSON5 कई सिंटैक्स एक्सटेंशन जोड़ता है जो कॉन्फ़िगरेशन फ़ाइलों को लिखना और बनाए रखना आसान बनाते हैं।
- कमेंट — एकल-पंक्ति (//) और बहु-पंक्ति (/* */) दोनों प्रकार के कमेंट की अनुमति है, जो कॉन्फ़िग फ़ाइलों को स्व-दस्तावेज़ीकृत बनाता है
- ट्रेलिंग कॉमा — ऐरे और ऑब्जेक्ट में अंतिम आइटम के बाद कॉमा हो सकता है, जिससे एंट्री जोड़ने या हटाने पर diff में शोर कम होता है
- बिना कोट वाली कुंजियाँ — वैध ECMAScript पहचानकर्ता वाली ऑब्जेक्ट कुंजियों को कोट की आवश्यकता नहीं होती, जिससे कॉन्फ़िग अधिक संक्षिप्त बनते हैं
- हेक्साडेसिमल संख्याएँ — संख्यात्मक मानों को 0xFF के रूप में लिखा जा सकता है, जो कॉन्फ़िगरेशन में रंग कोड और बिटमास्क के लिए उपयोगी है
- बहु-पंक्ति स्ट्रिंग — स्ट्रिंग मान बैकस्लैश निरंतरता का उपयोग करके कई पंक्तियों तक फैल सकते हैं, जो लंबे विवरण या पथ के लिए सहायक है
- विशेष संख्यात्मक मान — Infinity, -Infinity, और NaN, JSON5 में वैध संख्यात्मक लिटरल हैं
निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं
JSON5 को JSON में बदलें →JSON5 का उपयोग कहाँ होता है
JSON5 मुख्य रूप से JavaScript इकोसिस्टम टूलिंग में उपयोग किया जाता है जहाँ कॉन्फ़िगरेशन फ़ाइलें डेवलपर द्वारा लिखी और बनाए रखी जाती हैं।
- Babel — .babelrc और babel.config.json5 फ़ाइलें कमेंट के साथ बिल्ड कॉन्फ़िगरेशन के लिए JSON5 सिंटैक्स का समर्थन करती हैं
- TypeScript — tsconfig.json, कमेंट और ट्रेलिंग कॉमा जैसी JSON5 विशेषताओं का समर्थन करता है (तकनीकी रूप से JSONC)
- Chrome DevTools — नेटवर्क थ्रॉटलिंग प्रोफ़ाइल और अन्य सेटिंग्स JSON5 प्रारूप का उपयोग करती हैं
- Next.js — कॉन्फ़िगरेशन फ़ाइलें इनलाइन दस्तावेज़ीकरण के साथ डेवलपर-अनुकूल सेटअप के लिए JSON5 स्वीकार करती हैं
अक्सर पूछे जाने वाले प्रश्न
क्या ब्राउज़र JSON5 को मूल रूप से पार्स कर सकते हैं?
नहीं। ब्राउज़र केवल JSON.parse() के माध्यम से मानक JSON का समर्थन करते हैं। किसी ब्राउज़र या Node.js एप्लिकेशन में JSON5 को पार्स करने के लिए, आपको json5 npm पैकेज की आवश्यकता होती है। JSON5 का समर्थन करने वाले बिल्ड टूल अपने बिल्ड चरण के दौरान पार्सिंग को आंतरिक रूप से संभालते हैं।
JSON5 और JSONC के बीच क्या अंतर है?
JSONC (कमेंट के साथ JSON) केवल JSON में कमेंट समर्थन जोड़ता है। JSON5 एक व्यापक सुपरसेट है जो कमेंट, ट्रेलिंग कॉमा, बिना कोट वाली कुंजियाँ, हेक्स संख्याएँ, बहु-पंक्ति स्ट्रिंग, और विशेष संख्यात्मक मान जोड़ता है। TypeScript का tsconfig.json और VS Code का settings.json, JSONC का उपयोग करते हैं, जबकि Babel और अन्य टूल पूर्ण JSON5 का उपयोग करते हैं।
क्या JSON5, YAML के समान है?
नहीं। JSON5 छोटे-छोटे एर्गोनोमिक जोड़ों के साथ JSON सिंटैक्स के करीब रहता है। YAML व्हाइटस्पेस-आधारित संरचना, एंकर, और कई अन्य विशेषताओं वाला एक पूरी तरह अलग प्रारूप है। JSON5 को JSON में बदलना आसान है क्योंकि यह एक सख़्त सुपरसेट है। YAML-से-JSON रूपांतरण हानिपूर्ण हो सकता है क्योंकि YAML ऐसे डेटा प्रकारों का समर्थन करता है जो JSON नहीं करता।