Node.js में JSON के साथ काम करना: बुनियादी से उन्नत तकनीकों तक
JSON (JavaScript Object Notation) एक हल्का डेटा इंटरचेंज फॉर्मेट है जो वेब-API और कॉन्फ़िगरेशन फ़ाइलों के लिए डी-फैक्टो मानक बन गया है। Node.js में JSON के साथ काम करना कोर स्तर पर बिल्ट-इन है, जो इसकी प्रोसेसिंग को तेज़ और सुविधाजनक बनाता है। इस लेख में हम JSON के साथ काम करने के सभी पहलुओं को कवर करेंगे: बुनियादी पार्सिंग से लेकर स्ट्रीम के साथ बड़ी फ़ाइलों की प्रोसेसिंग तक।
बुनियादी बातें: JSON.parse() और JSON.stringify()
दो ग्लोबल मेथड — JSON.parse() और JSON.stringify() — JavaScript में JSON के साथ सभी काम की नींव हैं।
JSON.parse() — स्ट्रिंग को ऑब्जेक्ट में बदलना
मेथड JSON.parse() JSON फॉर्मेट में एक स्ट्रिंग लेता है और संबंधित JavaScript ऑब्जेक्ट लौटाता है। यदि स्ट्रिंग में सिंटैक्स त्रुटि है, तो SyntaxError अपवाद फेंका जाएगा।
const jsonString = '{"name": "अन्ना", "age": 30, "isAdmin": false}';const user = JSON.parse(jsonString);
console.log(user.name); // "अन्ना"console.log(user.age); // 30दूसरा वैकल्पिक पैरामीटर — एक reviver फ़ंक्शन है, जो पार्सिंग प्रक्रिया के दौरान मानों को बदलने की अनुमति देता है:
const jsonString = '{"date": "2024-01-15T10:30:00Z", "count": "42"}';const obj = JSON.parse(jsonString, (key, value) => { if (key === 'date') return new Date(value); if (key === 'count') return parseInt(value, 10); return value;});
console.log(obj.date instanceof Date); // trueconsole.log(typeof obj.count); // "number"JSON.stringify() — ऑब्जेक्ट को स्ट्रिंग में बदलना
मेथड JSON.stringify() उल्टा करता है — JavaScript ऑब्जेक्ट को JSON स्ट्रिंग में बदलता है। यह तीन पैरामीटर लेता है: मान, रिप्लेसर फ़ंक्शन (या कुंजियों की एक सरणी) और फ़ॉर्मेटिंग के लिए स्पेस की संख्या।
const user = { name: "इवान", age: 25, roles: ["admin", "editor"], metadata: null};
// बुनियादी उपयोगconst json = JSON.stringify(user);console.log(json);// {"name":"इवान","age":25,"roles":["admin","editor"],"metadata":null}
// फ़ॉर्मेटिंग के साथconst prettyJson = JSON.stringify(user, null, 2);console.log(prettyJson);/*{ "name": "इवान", "age": 25, "roles": ["admin", "editor"], "metadata": null}*/रिप्लेसर फ़ंक्शन मानों को फ़िल्टर या बदलने की अनुमति देता है:
const user = { name: "पीटर", password: "secret123", age: 28 };
const safeJson = JSON.stringify(user, (key, value) => { if (key === 'password') return undefined; // पासवर्ड हटाएं return value;});
console.log(safeJson); // {"name":"पीटर","age":28}Node.js में JSON फ़ाइलों को पढ़ना और लिखना
वास्तविक प्रोजेक्ट्स में, JSON डेटा अक्सर फ़ाइलों में संग्रहीत होता है। Node.js फ़ाइल सिस्टम के साथ काम करने के लिए 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); // 3000} 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);});फ़ाइल में JSON लिखना
const fs = require('fs');
const settings = { theme: "dark", language: "hi", notifications: true};
// फ़ॉर्मेटिंग के साथ लिखनाfs.writeFileSync('settings.json', JSON.stringify(settings, null, 2), 'utf8');console.log('settings.json फ़ाइल बनाई गई');
// एसिंक्रोनस लिखनाfs.writeFile('settings.json', JSON.stringify(settings), (err) => { if (err) throw err;