Node.js में JSON: डेटा प्रोसेसिंग की संपूर्ण गाइड
\n\nJSON (JavaScript Object Notation) एक हल्का डेटा विनिमय प्रारूप है जो वेब-API, कॉन्फ़िगरेशन फ़ाइलों और संरचित जानकारी के भंडारण के लिए डी-फैक्टो मानक बन गया है। Node.js वातावरण में, JSON के साथ काम करना लगभग हर एप्लिकेशन का एक अभिन्न अंग है। इस लेख में, हम JSON प्रोसेसिंग के सभी पहलुओं पर विस्तार से चर्चा करेंगे: बुनियादी पार्सिंग से लेकर उन्नत स्ट्रीम प्रोसेसिंग तक।
\n\n1. मूल बातें: पार्सिंग और सीरियलाइज़ेशन
\n\nNode.js में JSON के साथ काम करने के लिए दो वैश्विक विधियों का उपयोग किया जाता है: JSON.parse() और JSON.stringify()। ये अतिरिक्त मॉड्यूल स्थापित किए बिना उपलब्ध हैं।
JSON.parse() — स्ट्रिंग को ऑब्जेक्ट में बदलना
\nविधि JSON.parse() एक JSON स्ट्रिंग लेती है और संबंधित JavaScript ऑब्जेक्ट लौटाती है। यह महत्वपूर्ण है कि स्ट्रिंग सख्ती से मान्य JSON होनी चाहिए।
const jsonString = '{"name": "Alice", "age": 30, "isAdmin": false}';\nconst user = JSON.parse(jsonString);\nconsole.log(user.name); // Alice\nconsole.log(typeof user); // object\n\nयह विधि दूसरे तर्क का भी समर्थन करती है — एक "reviver" फ़ंक्शन, जो पार्सिंग प्रक्रिया के दौरान मानों को बदलने की अनुमति देता है:
\n\nconst data = '{"date": "2025-01-15T10:00:00Z"}';\nconst parsed = JSON.parse(data, (key, value) => {\n if (key === 'date') return new Date(value);\n return value;\n});\nconsole.log(parsed.date instanceof Date); // true\n\nJSON.stringify() — ऑब्जेक्ट को स्ट्रिंग में बदलना
विधि JSON.stringify() उल्टा रूपांतरण करती है — JavaScript ऑब्जेक्ट को JSON स्ट्रिंग में बदलती है।
const user = {\n name: 'Bob',\n age: 25,\n hobbies: ['coding', 'reading']\n};\nconst json = JSON.stringify(user);\nconsole.log(json); \n// {"name":"Bob","age":25,"hobbies":["coding","reading"]}\n\nयह विधि तीन तर्क लेती है: मान, एक प्रतिस्थापन फ़ंक्शन (replacer) और फ़ॉर्मेटिंग के लिए रिक्त स्थानों की संख्या (space):
\n\nconst obj = { a: 1, b: 2, c: 3 };\n// इंडेंटेशन के साथ फ़ॉर्मेटेड आउटपुट\nconsole.log(JSON.stringify(obj, null, 2));\n// {\n// "a": 1,\n// "b": 2,\n// "c": 3\n// }\n\n// replacer के साथ कुंजियों को फ़िल्टर करना\nconst filtered = JSON.stringify(obj, ['a', 'c'], 2);\nconsole.log(filtered);\n// {\n// "a": 1,\n// "c": 3\n// }\n\n2. JSON फ़ाइलों को पढ़ना और लिखना
\n\nवास्तविक एप्लिकेशन में, JSON डेटा अक्सर फ़ाइलों में संग्रहीत किया जाता है। फ़ाइल सिस्टम के साथ काम करने के लिए अंतर्निहित मॉड्यूल fs का उपयोग किया जाता है।
सिंक्रोनस पढ़ना और लिखना
\nconst fs = require('fs');\nconst path = require('path');\n\nconst filePath = path.join(__dirname, 'config.json');\n\n// पढ़ना\nconst rawData = fs.readFileSync(filePath, 'utf-8');\nconst config = JSON.parse(rawData);\nconsole.log(config.port);\n\n// लिखना\nconst newConfig = { port: 3000, host: 'localhost' };\nfs.writeFileSync(filePath, JSON.stringify(newConfig, null, 2));\n\nएसिंक्रोनस पढ़ना और लिखना (अनुशंसित तरीका)
\nconst fs = require('fs').promises;\n\nasync function readConfig() {\n try {\n const data = await fs.readFile('config.json', 'utf-8');\n return JSON.parse(data);\n } catch (err) {\n console.error('फ़ाइल पढ़ने में त्रुटि:', err);\n throw err;\n }\n}\n\nasync function writeConfig(config) {\n await fs.writeFile('config.json', JSON.stringify(config, null, 2));\n}\n\n// उपयोग\n(async () => {\n const config = await readConfig();\n config.port = 4000;\n await writeConfig(config);\n})();\n\n3. JSON वैलिडेशन
\n\nकभी-कभी यह जांचना आवश्यक होता है कि कोई स्ट्रिंग मान्य JSON है या नहीं, बिना अपवाद उत्पन्न किए। सबसे विश्वसनीय तरीका JSON.parse() को try-catch में लपेटना है:
पुस्तकालय में भी
अनुशंसाएँ