JSON का परिचय और जावास्क्रिप्ट में इसकी भूमिका
JSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है, जो जावास्क्रिप्ट ऑब्जेक्ट्स के सिंटैक्स पर आधारित है। अपनी उत्पत्ति के बावजूद, JSON सर्वर और क्लाइंट के बीच संरचित डेटा स्थानांतरित करने, साथ ही कॉन्फ़िगरेशन संग्रहीत करने और माइक्रोसर्विस आर्किटेक्चर में सूचना विनिमय के लिए एक सार्वभौमिक मानक बन गया है।
Node.js वातावरण में, JSON के साथ कार्य करना एक दैनिक कार्य है: कॉन्फ़िगरेशन फ़ाइलों को पढ़ने से लेकर REST API प्रतिक्रियाओं को संसाधित करने तक। इस लेख में, हम दो प्रमुख विधियों — JSON.parse() और JSON.stringify() — पर विस्तार से चर्चा करेंगे, साथ ही सामान्य त्रुटियों और सर्वोत्तम अभ्यासों को समझेंगे।
1. JSON पार्सिंग: JSON.parse() विधि
JSON.parse() विधि JSON प्रारूप में एक स्ट्रिंग को जावास्क्रिप्ट ऑब्जेक्ट में बदल देती है। यह तब आवश्यक है जब आप सर्वर, फ़ाइल या बाहरी स्रोत से डेटा प्राप्त करते हैं।
मूल सिंटैक्स
const jsonString = '{"name": "अन्ना", "age": 30, "isStudent": false}';const user = JSON.parse(jsonString);console.log(user.name); // "अन्ना"console.log(user.age); // 30उन्नत उपयोग: reviver फ़ंक्शन
JSON.parse() का दूसरा तर्क एक ट्रांसफ़ॉर्मर फ़ंक्शन (reviver) हो सकता है, जो पार्सिंग प्रक्रिया के दौरान मानों को संशोधित करने की अनुमति देता है। यह स्ट्रिंग दिनांकों को Date ऑब्जेक्ट्स में बदलने या डेटा सत्यापन के लिए उपयोगी है।
const jsonData = '{"date": "2024-01-15T10:30:00.000Z", "value": 42}';const parsed = JSON.parse(jsonData, (key, value) => { if (key === 'date') { return new Date(value); } return value;});console.log(parsed.date instanceof Date); // trueconsole.log(parsed.date.toLocaleDateString()); // "15.01.2024"पार्सिंग त्रुटियों का प्रबंधन
अमान्य JSON एक SyntaxError अपवाद उत्पन्न करेगा। हमेशा JSON.parse() कॉल को try...catch ब्लॉक में लपेटें:
function safeParse(jsonString) { try { return { data: JSON.parse(jsonString), error: null }; } catch (error) { console.error('JSON पार्सिंग त्रुटि:', error.message); return { data: null, error: error.message }; }}
const result = safeParse('{"name": "त्रुटि"}');console.log(result.data.name); // "त्रुटि"2. JSON में सीरियलाइज़ेशन: JSON.stringify() विधि
JSON.stringify() विधि विपरीत कार्य करती है — यह जावास्क्रिप्ट ऑब्जेक्ट को JSON स्ट्रिंग में बदल देती है। इसका उपयोग सर्वर पर डेटा भेजने, स्थिति सहेजने या लॉगिंग करते समय किया जाता है।
मूल सिंटैक्स
const user = { name: 'इवान', age: 25, skills: ['JavaScript', 'Node.js']};
const jsonString = JSON.stringify(user);console.log(jsonString);// {"name":"इवान","age":25,"skills":["JavaScript","Node.js"]}फ़ॉर्मेटिंग पैरामीटर
JSON.stringify() का तीसरा तर्क पठनीय आउटपुट के लिए इंडेंटेशन सेट करने की अनुमति देता है। यह फ़ाइलों में लिखने या डीबगिंग के लिए विशेष रूप से उपयोगी है।
const config = { server: { port: 3000, host: 'localhost' }, database: { host: 'db.example.com', port: 5432 }};
// कॉम्पैक्ट आउटपुटconsole.log(JSON.stringify(config));
// 2 स्पेस के इंडेंटेशन के साथ पठनीय आउटपुटconsole.log(JSON.stringify(config, null, 2));// {// "server": {// "port": 3000,// "host": "localhost"// },// ...// }replacer के साथ गुणों को फ़िल्टर करना
दूसरा तर्क एक सरणी या फ़ंक्शन है, जो यह निर्धारित करता है कि परिणामी स्ट्रिंग में कौन से गुण शामिल किए जाएं।
const user = { id: 1, name: 'मारिया', email: 'maria@example.com', password: 'secret123', role: 'admin'};
// गोपनीय डेटा को बाहर करेंconst safeUser = JSON.stringify(user, ['id', 'name', 'email', 'role']);console.log(safeUser);// {"id":1,"name":"मारिया","email":"maria@exa