Node.js में JSON प्रसंस्करण: पूर्ण गाइड
JSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो JavaScript ऑब्जेक्ट्स के सिंटैक्स पर आधारित है। Node.js वातावरण में JSON के साथ काम करना एक दैनिक कार्य है: कॉन्फ़िगरेशन फ़ाइलों से लेकर API अनुरोधों तक। इस लेख में हम JSON प्रसंस्करण के सभी पहलुओं पर विस्तार से चर्चा करेंगे, जिसमें पार्सिंग, सीरियलाइज़ेशन, वैलिडेशन और बड़ी फ़ाइलों के साथ काम करना शामिल है।
बुनियादी विधियाँ: JSON.parse() और JSON.stringify()
JSON के साथ काम करने के लिए दो मुख्य विधियाँ सीधे JavaScript में निर्मित हैं। वे वैश्विक रूप से उपलब्ध हैं और अतिरिक्त लाइब्रेरी स्थापित करने की आवश्यकता नहीं है।
JSON.parse() — स्ट्रिंग को ऑब्जेक्ट में बदलना
विधि JSON.parse() एक JSON स्ट्रिंग लेती है और संबंधित JavaScript ऑब्जेक्ट लौटाती है। यदि स्ट्रिंग में अमान्य JSON है, तो एक SyntaxError अपवाद फेंका जाएगा।
const jsonString = '{"name": "अन्ना", "age": 28, "isStudent": false}';const user = JSON.parse(jsonString);console.log(user.name); // "अन्ना"console.log(user.age); // 28दूसरे वैकल्पिक पैरामीटर के रूप में एक रिव्यूअर फ़ंक्शन पास किया जा सकता है, जो पार्सिंग के दौरान मानों को संशोधित करने की अनुमति देता है:
const json = '{"year": "2024", "price": "1500.50"}';const data = JSON.parse(json, (key, value) => { if (key === 'price') return parseFloat(value); if (key === 'year') return parseInt(value); return value;});console.log(typeof data.price); // "number"JSON.stringify() — ऑब्जेक्ट को स्ट्रिंग में बदलना
विधि JSON.stringify() उल्टा करती है: एक ऑब्जेक्ट या मान को JSON स्ट्रिंग में बदलती है। यह तीन तर्क ले सकती है: मान, एक प्रतिस्थापन फ़ंक्शन या कुंजियों की सरणी, और फ़ॉर्मेटिंग के लिए रिक्त स्थानों की संख्या।
const user = { name: "इवान", age: 32, skills: ["JS", "Node", "Python"]};
// बिना फ़ॉर्मेटिंग केconsole.log(JSON.stringify(user));// {"name":"इवान","age":32,"skills":["JS","Node","Python"]}
// फ़ॉर्मेटिंग के साथ (2 रिक्त स्थान)console.log(JSON.stringify(user, null, 2));/*{ "name": "इवान", "age": 32, "skills": [ "JS", "Node", "Python" ]}*/दूसरा तर्क फ़िल्टरिंग के लिए कुंजियों की एक सरणी हो सकता है:
console.log(JSON.stringify(user, ['name', 'age']));// {"name":"इवान","age":32}Node.js में JSON फ़ाइलों के साथ काम करना
Node.js में अक्सर JSON फ़ाइलों को पढ़ने और लिखने की आवश्यकता होती है। इसके लिए fs (file system) मॉड्यूल का उपयोग किया जाता है।
JSON फ़ाइल पढ़ना
const fs = require('fs');
// सिंक्रोनस रीडिंगtry { const data = fs.readFileSync('config.json', 'utf8'); const config = JSON.parse(data); console.log(config.port);} catch (err) { console.error('फ़ाइल पढ़ने में त्रुटि:', err.message);}
// एसिंक्रोनस रीडिंगfs.readFile('config.json', 'utf8', (err, data) => { if (err) { console.error('त्रुटि:', err); return; } const config = JSON.parse(data); console.log(config.port);});JSON फ़ाइल लिखना
const fs = require('fs');
const settings = { theme: 'dark', language: 'ru', fontSize: 14};
// सिंक्रोनस राइटिंगfs.writeFileSync('settings.json', JSON.stringify(settings, null, 2));
// एसिंक्रोनस राइटिंगfs.writeFile('settings.json', JSON.stringify(settings, null, 2), (err) => { if (err) console.error('लिखने में त्रुटि:', err); else console.log('फ़ाइल सहेजी गई');});JSON वैलिडेशन
डेटा का उपयोग करने से पहले हमेशा उसकी वैधता की जाँच करनी चाहिए। सबसे सरल तरीका JSON.parse() को try-catch में लपेटना है। अधिक जटिल संरचना वैलिडेशन के लिए लाइब्रेरी का उपयोग किया जा सकता है।
try-catch के साथ जाँच
function safeJsonParse(str) { try { return { data: JSON.parse(str), error: null }; } catch (e) { return { data: null, error: e.me