C# में JSON के साथ कार्य: व्यावहारिक रूप से पार्सिंग और सीरियलाइज़ेशन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय

\n

JSON (JavaScript Object Notation) एक हल्का डेटा आदान-प्रदान प्रारूप है जो सर्वर और क्लाइंट के बीच संचार के साथ-साथ कॉन्फ़िगरेशन संग्रहीत करने के लिए एक मानक बन गया है। C# (.NET) इकोसिस्टम में, JSON के साथ कार्य उच्चतम स्तर पर लागू किया गया है: डेवलपर के पास अंतर्निहित लाइब्रेरीज़ के साथ-साथ शक्तिशाली तृतीय-पक्ष समाधान भी उपलब्ध हैं। इस लेख में, हम व्यावहारिक उदाहरणों के माध्यम से समझेंगे कि आधुनिक दृष्टिकोणों का उपयोग करके C# में JSON का पार्सिंग, सीरियलाइज़ेशन और डीसीरियलाइज़ेशन कैसे करें।

\n

हम दो मुख्य उपकरणों पर विचार करेंगे: System.Text.Json (.NET Core 3.0+ के साथ अंतर्निहित लाइब्रेरी) और Newtonsoft.Json (लोकप्रिय तृतीय-पक्ष लाइब्रेरी)। आप सीखेंगे कि C# ऑब्जेक्ट को JSON में और वापस कैसे बदलें, नेस्टेड संरचनाओं के साथ कैसे काम करें और त्रुटियों को कैसे संभालें।

\n\n

C# में सीरियलाइज़ेशन और डीसीरियलाइज़ेशन की मूल बातें

\n

कोड में गहराई से जाने से पहले, आइए शब्दों को परिभाषित करें। सीरियलाइज़ेशन एक C# ऑब्जेक्ट (जैसे, क्लास का एक इंस्टेंस) को JSON स्ट्रिंग में बदलने की प्रक्रिया है। डीसीरियलाइज़ेशन विपरीत प्रक्रिया है: JSON स्ट्रिंग से हम C# ऑब्जेक्ट को पुनर्स्थापित करते हैं। C# में, इसके लिए विशेषताओं (attributes) और विशेष सीरियलाइज़र क्लास का उपयोग किया जाता है।

\n\n

1. System.Text.Json के साथ कार्य (अंतर्निहित लाइब्रेरी)

\n

.NET Core 3.0 से शुरू करके, Microsoft ने JSON के साथ कार्य करने के लिए अपनी स्वयं की लाइब्रेरी — System.Text.Json प्रस्तुत की। यह Newtonsoft.Json से तेज़ है और अतिरिक्त पैकेज स्थापित करने की आवश्यकता नहीं है।

\n

एक सरल क्लास Person पर विचार करें:

\n
public class Person\n{\n    public string Name { get; set; }\n    public int Age { get; set; }\n    public string Email { get; set; }\n}
\n

JSON में सीरियलाइज़ेशन:

\n
using System.Text.Json;\n\nvar person = new Person\n{\n    Name = "एलेक्सी",\n    Age = 30,\n    Email = "alex@example.com"\n};\n\nstring json = JsonSerializer.Serialize(person);\nConsole.WriteLine(json);\n// आउटपुट: {"Name":"एलेक्सी","Age":30,"Email":"alex@example.com"}
\n

JSON से डीसीरियलाइज़ेशन:

\n
string jsonString = @"{""Name"":""मारिया"",""Age"":25,""Email"":""maria@example.com""}";\nPerson? person = JsonSerializer.Deserialize<Person>(jsonString);\nConsole.WriteLine(person?.Name); // मारिया
\n

? (nullable) ऑपरेटर पर ध्यान दें — त्रुटि होने पर डीसीरियलाइज़ेशन null लौटा सकता है।

\n\n

2. Newtonsoft.Json (Json.NET) के साथ कार्य

\n

System.Text.Json के आने के बावजूद, Newtonsoft.Json अपनी लचीलापन और व्यापक अनुकूलन क्षमताओं के कारण एक लोकप्रिय विकल्प बना हुआ है। इसका उपयोग करने के लिए, NuGet पैकेज Newtonsoft.Json स्थापित करें।

\n

उसी क्लास Person के साथ उदाहरण:

\n
using Newtonsoft.Json;\n\n// सीरियलाइज़ेशन\nvar person = new Person { Name = "इवान", Age = 35, Email = "ivan@example.com" };\nstring json = JsonConvert.SerializeObject(person);\nConsole.WriteLine(json);\n\n// डीसीरियलाइज़ेशन\nstring jsonInput = @"{'Name':'ओल्गा','Age':28,'Email':'olga@example.com'}";\nPerson? personDeserialized = JsonConvert.DeserializeObject<Person>(jsonInput);\nConsole.WriteLine(personDeserialized?.Name); // ओल्गा
\n

Newtonsoft.Json डिफ़ॉल्ट रूप से दोहरे उद्धरण चिह्नों और एकल उद्धरण चिह्नों दोनों का समर्थन करता है, जो इसे "गंदे" JSON के प्रति अधिक सहिष्णु बनाता है।

\n\n

उन्नत परिदृश्य: नेस्टेड ऑब्जेक्ट और संग्रह के साथ कार्य

\n

वास्तविक परियोजनाओं में, JSON शायद ही कभी सपाट होता है। आइए नेस्टेड डेटा के साथ एक उदाहरण देखें।

\n

मान लीजिए कि हमारे पास एक क्लास Company है जिसमें कर्मचारियों की सूची है:

\n
public class Employee\n{\n    public string Name { get; set; }\n    public string Position { get; set; }\n}\n\npublic class Company\n{\n    public string CompanyName { get; set; }\n    public List<Employee> Employees { get; set; }\n}
\n

सीरियलाइज़ेशन (System.Text.Json):

\n


                
                

ब्लॉग

पुस्तक अनुशंसाएँ