परिचय: JSON और TypeScript क्यों हैं एकदम सही जोड़ी
\nआधुनिक वेब डेवलपमेंट में, JSON (JavaScript Object Notation) क्लाइंट और सर्वर के बीच डेटा आदान-प्रदान, कॉन्फ़िगरेशन स्टोर करने और API में जानकारी भेजने के लिए एक सार्वभौमिक फॉर्मेट बन गया है। TypeScript, JavaScript के ऊपर एक लेयर की तरह, इसमें एक शक्तिशाली टाइप सिस्टम जोड़ता है, जिससे JSON के साथ काम करना न केवल आसान बल्कि सुरक्षित भी हो जाता है। इस लेख में, हम सीखेंगे कि TypeScript का उपयोग करके डेटा को सही तरीके से कैसे पार्स करें (JSON स्ट्रिंग को ऑब्जेक्ट में बदलें) और सीरियलाइज़ करें (ऑब्जेक्ट को JSON स्ट्रिंग में बदलें)। यह सामग्री शुरुआती डेवलपर्स के लिए है जो TypeScript की मूल बातें जानते हैं और JSON के साथ आत्मविश्वास से काम करना चाहते हैं।
\n\nआप क्या सीखेंगे
\n- \n
- बिल्ट-इन मेथड
JSON.parse()औरJSON.stringify()का उपयोग कैसे करें। \n - गलतियों से बचने के लिए पार्सिंग के दौरान डेटा को कैसे टाइप करें। \n
- एक्सेप्शन को कैसे हैंडल करें और JSON की सटीकता की जाँच करें। \n
- वास्तविक परिदृश्यों के साथ व्यावहारिक उदाहरण। \n
1. मूल बातें: JSON.parse() और JSON.stringify() मेथड
\nTypeScript को JavaScript से JSON के साथ काम करने के लिए दो ग्लोबल मेथड विरासत में मिलते हैं। ये अतिरिक्त लाइब्रेरी आयात किए बिना उपलब्ध हैं।
\n\n1.1. JSON को ऑब्जेक्ट में पार्स करना: JSON.parse()
\nJSON.parse() मेथड एक JSON फॉर्मेट स्ट्रिंग लेता है और एक JavaScript ऑब्जेक्ट (या ऐरे, नंबर, स्ट्रिंग) लौटाता है। TypeScript में, हम जेनेरिक का उपयोग करके परिणाम के अपेक्षित प्रकार को निर्दिष्ट कर सकते हैं।
// बिना टाइपिंग के सरल उदाहरण\nconst jsonString = '{"name": "आलिया", "age": 30}';\nconst user = JSON.parse(jsonString);\nconsole.log(user.name); // "आलिया"\n\n1.2. ऑब्जेक्ट को JSON में सीरियलाइज़ करना: JSON.stringify()
\nJSON.stringify() मेथड किसी JavaScript ऑब्जेक्ट या वैल्यू को JSON स्ट्रिंग में बदल देता है। यह सभी प्रिमिटिव टाइप, ऐरे और सरल ऑब्जेक्ट को स्वचालित रूप से हैंडल करता है।
const user = {\n name: "रोहन",\n age: 25,\n isAdmin: false\n};\nconst jsonString = JSON.stringify(user);\nconsole.log(jsonString); // '{"name":"रोहन","age":25,"isAdmin":false}'\n\n2. TypeScript में JSON पार्सिंग के दौरान डेटा टाइपिंग
\nTypeScript का मुख्य लाभ पार्सिंग के परिणाम के लिए एक प्रकार निर्धारित करने की क्षमता है। यह कोड को कंपाइल समय पर त्रुटियों से बचाता है और इसे स्व-दस्तावेजीकरण बनाता है।
\n\n2.1. इंटरफ़ेस और जेनेरिक का उपयोग
\nअपने डेटा की संरचना का वर्णन करने वाला एक इंटरफ़ेस बनाएं, और इसे जेनेरिक के रूप में JSON.parse() में पास करें:
interface User {\n id: number;\n name: string;\n email: string;\n isActive: boolean;\n}\n\nconst jsonData = '{"id": 1, "name": "विक्रम", "email": "vikram@example.com", "isActive": true}';\nconst user: User = JSON.parse(jsonData);\nconsole.log(user.email); // "vikram@example.com"\n// user.id अब सख्ती से number है\n\n2.2. नेस्टेड ऑब्जेक्ट और ऐरे को हैंडल करना
\nइंटरफ़ेस जटिल संरचनाओं के साथ भी बढ़िया काम करते हैं:
\ninterface Address {\n city: string;\n zip: string;\n}\n\ninterface Employee {\n id: number;\n name: string;\n address: Address;\n skills: string[];\n}\n\nconst employeeJson = '{"id": 101, "name": "प्रिया", "address": {"city": "दिल्ली", "zip": "110001"}, "skills": ["TS", "JS", "Python"]}';\nconst employee: Employee = JSON.parse(employeeJson);\nconsole.log(employee.address.city); // "दिल्ली"\n\n2.3. अगर टाइप मेल नहीं खाता तो क्या होगा?
\nयह समझना महत्वपूर्ण है: TypeScript केवल कंपाइलेशन चरण पर टाइप की जाँच करता है। अगर रनटाइम पर एक अलग संरचना वाला JSON आता है (उदाहरण के लिए, age नंबर के बजाय स्ट्रिंग हो), तो कोड में त्रुटि होगी, लेकिन JSON.parse() में नहीं। पूर्ण सुरक्षा के लिए, runtime-वैलिडेटर (जैसे Zod या io-ts) का उपयोग करें, लेकिन अधिकांश शैक्षिक प्रोजेक्ट्स के लिए इंटरफ़ेस पर्याप्त हैं।
3. सीरियलाइज़ेशन: बारीकियाँ और कस्टम रूपांतरण
\nJSON.stringify() मेथड को भी कस्टमाइज़ किया जा सकता है