JSON और JavaScript का परिचय
\nJSON (JavaScript Object Notation) एक हल्का डेटा एक्सचेंज फॉर्मेट है, जो वेब एप्लिकेशन में क्लाइंट और सर्वर के बीच संचार का मानक बन गया है। अपनी सादगी और पठनीयता के कारण, JSON का उपयोग हर जगह किया जाता है: कॉन्फ़िगरेशन फ़ाइलों से लेकर API अनुरोधों तक। इस लेख में, हम Node.js में JSON के साथ काम करना, पार्सिंग (स्ट्रिंग को ऑब्जेक्ट में बदलना) और सीरियलाइज़ेशन (ऑब्जेक्ट को स्ट्रिंग में बदलना) सीखेंगे। यह सामग्री उन शुरुआती डेवलपर्स के लिए है जो JavaScript की मूल बातें जानते हैं।
\n\nJSON क्या है और इसकी आवश्यकता क्यों है?
\nJSON एक टेक्स्ट-आधारित फॉर्मेट है, जो JavaScript ऑब्जेक्ट सिंटैक्स पर आधारित है। हालांकि, JSON केवल एक स्ट्रिंग है जिसे नेटवर्क पर भेजा जा सकता है या फ़ाइल में स्टोर किया जा सकता है। JSON में मुख्य डेटा प्रकार:
\n- \n
- स्ट्रिंग्स (डबल कोट्स में) \n
- नंबर्स (पूर्णांक और दशमलव) \n
- बूलियन वैल्यू (true/false) \n
- null \n
- ऐरे \n
- ऑब्जेक्ट्स (कुंजियाँ डबल कोट्स में) \n
एक मान्य JSON स्ट्रिंग का उदाहरण:
\n{\n "name": "अन्ना",\n "age": 28,\n "isStudent": false,\n "skills": ["JavaScript", "Node.js"],\n "address": null\n}\nसामान्य JavaScript ऑब्जेक्ट के विपरीत, JSON में सख्त सिंटैक्स होता है: सभी कुंजियाँ और स्ट्रिंग वैल्यू डबल कोट्स में होती हैं, और कमेंट्स की अनुमति नहीं है।
\n\nJSON पार्सिंग: JSON.parse()
\nJSON स्ट्रिंग को JavaScript ऑब्जेक्ट में बदलने के लिए JSON.parse() मेथड का उपयोग किया जाता है। यह तब आवश्यक है जब आप सर्वर से डेटा प्राप्त करते हैं, फ़ाइल पढ़ते हैं, या उपयोगकर्ता इनपुट प्रोसेस करते हैं।
पार्सिंग का बेसिक उदाहरण
\nconst jsonString = '{"name": "राहुल", "age": 30}';\nconst user = JSON.parse(jsonString);\nconsole.log(user.name); // राहुल\nconsole.log(user.age); // 30\n\nऐरे को पार्स करना
\nconst jsonArray = '[1, 2, "तीन", true]';\nconst arr = JSON.parse(jsonArray);\nconsole.log(arr[2]); // तीन\n\nपार्सिंग एरर को हैंडल करना
\nअमान्य JSON एक SyntaxError अपवाद उत्पन्न करेगा। अविश्वसनीय डेटा के साथ काम करते समय हमेशा try...catch का उपयोग करें:
try {\n const invalid = '{"name": "गलती}';\n const result = JSON.parse(invalid);\n} catch (error) {\n console.error('पार्सिंग में त्रुटि:', error.message);\n}\nआप दूसरा आर्गुमेंट — एक reviver फंक्शन भी पास कर सकते हैं, जो पार्सिंग के दौरान वैल्यू को बदलने की अनुमति देता है:
const json = '{"date": "2024-01-15", "count": "42"}';\nconst obj = JSON.parse(json, (key, value) => {\n if (key === 'date') return new Date(value);\n if (key === 'count') return Number(value);\n return value;\n});\nconsole.log(obj.date.getFullYear()); // 2024\nconsole.log(typeof obj.count); // number\n\nJSON सीरियलाइज़ेशन: JSON.stringify()
\nउल्टी प्रक्रिया — JavaScript ऑब्जेक्ट को JSON स्ट्रिंग में बदलना — JSON.stringify() के माध्यम से की जाती है। यह सर्वर पर डेटा भेजने, फ़ाइल में सेव करने या लॉगिंग के लिए आवश्यक है।
सीरियलाइज़ेशन का सरल उदाहरण
\nconst user = {\n name: 'प्रिया',\n age: 25,\n isAdmin: true\n};\nconst json = JSON.stringify(user);\nconsole.log(json);\n// {"name":"प्रिया","age":25,"isAdmin":true}\n\nआउटपुट को फ़ॉर्मेट करना
\nयह मेथड तीन पैरामीटर लेता है: वैल्यू, रिप्लेसिंग फंक्शन (या फ़ील्ड्स की ऐरे) और इंडेंटेशन के लिए स्पेस की संख्या:
\nconst data = {\n id: 1,\n title: 'लेख',\n tags: ['js', 'json']\n};\n// 2 स्पेस के इंडेंट के साथ\nconst prettyJson = JSON.stringify(data, null, 2);\nconsole.log(prettyJson);\n/* आउटपुट:\n{\n "id": 1,\n "title": "लेख",\n "tags": [\n "js",\n "json"\n ]\n}\n*/\n\nफ़ील्ड्स को फ़िल्टर करना
\nदूसरा पैरामीटर उन कुंजियों की ऐरे हो सकता है जिन्हें परिणाम में शामिल करना है:
\nconst user = {\n name: 'अमित',\n password: 'secret12