TypeScript में JSON के साथ काम करना: व्यावहारिक रूप से पार्सिंग और सीरियलाइज़ेशन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: JSON और TypeScript — डेटा के साथ काम करने के लिए आदर्श जोड़ी

\n

JSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो क्लाइंट और सर्वर के बीच संचार के साथ-साथ कॉन्फ़िगरेशन संग्रहीत करने और संरचित जानकारी स्थानांतरित करने के लिए डी-फैक्टो मानक बन गया है। TypeScript, JavaScript का एक सख्ती से टाइप किया गया सुपरसेट होने के नाते, JSON के साथ सुरक्षित और पूर्वानुमानित कार्य के लिए शक्तिशाली उपकरण प्रदान करता है। इस लेख में हम व्यावहारिक रूप से समझेंगे कि TypeScript में JSON स्ट्रिंग को ऑब्जेक्ट में कैसे पार्स करें और ऑब्जेक्ट को JSON स्ट्रिंग में कैसे सीरियलाइज़ करें, सामान्य गलतियों से बचते हुए और टाइप सिस्टम की क्षमताओं का उपयोग करते हुए।

\n\n

मूल बातें: TypeScript में JSON.parse() और JSON.stringify()

\n

TypeScript JSON के साथ काम करने के लिए JavaScript के अंतर्निहित तरीकों को पूरी तरह से इनहेरिट करता है: JSON.parse() और JSON.stringify()। हालांकि, सख्ती से टाइप किए गए वातावरण में उनका उपयोग एक विशेष दृष्टिकोण की आवश्यकता है।

\n\n

JSON.parse() — स्ट्रिंग से ऑब्जेक्ट में

\n

विधि JSON.parse() एक JSON स्ट्रिंग लेती है और एक ऑब्जेक्ट लौटाती है। TypeScript में, परिणाम डिफ़ॉल्ट रूप से any प्रकार का होता है, जो हमें टाइपिंग के सभी लाभों से वंचित करता है। एक उदाहरण देखें:

\n
const jsonString = '{"name": "TypeScript", "version": 5.3}';\nconst parsed: any = JSON.parse(jsonString);\nconsole.log(parsed.name); // काम करता है, लेकिन ऑटो-कम्प्लीशन और टाइप चेकिंग नहीं है
\n

टाइप किया गया परिणाम प्राप्त करने के लिए, टाइप असर्शन (type assertion) का उपयोग करें:

\n
interface Language {\n    name: string;\n    version: number;\n}\n\nconst jsonString = '{"name": "TypeScript", "version": 5.3}';\nconst parsed = JSON.parse(jsonString) as Language;\nconsole.log(parsed.name.toUpperCase()); // ऑटो-कम्प्लीशन काम करता है!
\n\n

JSON.stringify() — ऑब्जेक्ट से स्ट्रिंग में

\n

JSON.stringify() एक ऑब्जेक्ट को JSON स्ट्रिंग में सीरियलाइज़ करता है। TypeScript जाँचता है कि पास किया गया ऑब्जेक्ट सीरियलाइज़ेशन के लिए मान्य है (इसमें फ़ंक्शन, undefined, Symbol आदि नहीं हैं)।

\n
interface User {\n    id: number;\n    name: string;\n    isActive: boolean;\n}\n\nconst user: User = { id: 1, name: "Alice", isActive: true };\nconst jsonString = JSON.stringify(user);\nconsole.log(jsonString); // '{"id":1,"name":"Alice","isActive":true}'
\n\n

उन्नत तकनीकें: टाइपिंग और त्रुटि प्रबंधन

\n

व्यवहार में, JSON के साथ काम करना शायद ही कभी आदर्श होता है। डेटा सर्वर से अप्रत्याशित प्रारूप में आ सकता है, इसमें अतिरिक्त फ़ील्ड हो सकते हैं या आवश्यक फ़ील्ड गायब हो सकते हैं। आइए देखें कि TypeScript इन समस्याओं से निपटने में कैसे मदद करता है।

\n\n

सुरक्षित पार्सिंग के लिए सामान्यीकृत फ़ंक्शन बनाना

\n

हम एक सार्वभौमिक फ़ंक्शन लिखते हैं जो एक JSON स्ट्रिंग लेता है और त्रुटि प्रबंधन के साथ एक टाइप किया गया परिणाम लौटाता है:

\n
function safeParse<T>(json: string): T | null {\n    try {\n        return JSON.parse(json) as T;\n    } catch (error) {\n        console.error("JSON पार्सिंग त्रुटि:", error);\n        return null;\n    }\n}\n\n// उपयोग\ninterface Product {\n    id: number;\n    title: string;\n    price: number;\n}\n\nconst rawData = '{"id": 101, "title": "Laptop", "price": 999.99}';\nconst product = safeParse<Product>(rawData);\nif (product) {\n    console.log(product.title); // "Laptop"\n}
\n\n

कस्टम टाइप गार्ड के साथ डेटा सत्यापन

\n

as T टाइप असर्शन के बाद भी, TypeScript यह जाँच नहीं करता है कि डेटा वास्तव में इंटरफ़ेस से मेल खाता है। रनटाइम सत्यापन के लिए टाइप गार्ड का उपयोग करें:

\n
function isProduct(obj: any): obj is Product {\n    return (\n        typeof obj === 'object' &&\n        obj !== null &&\n        typeof obj.id === 'number' &&\n        typeof obj.title === 'string' &&\n        typeof obj.price === 'number'\n    );\n}\n\nconst rawData = '{"id": "abc", "title": "Phone", "price": 599}';\nconst parsed = JSON.parse(rawData);\nif (isProd                

ब्लॉग

पुस्तक अनुशंसाएँ