C# में JSON के साथ काम करना: शुरुआती लोगों के लिए पार्सिंग और सीरियलाइज़ेशन

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

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

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

C# में JSON के साथ काम करने का परिचय

\n\n

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

\n\n

हम व्यावहारिक उदाहरण देखेंगे जो आपको मुख्य अवधारणाओं को जल्दी से समझने में मदद करेंगे। सभी कोड C# (.NET 6+) में लिखे गए हैं, लेकिन न्यूनतम बदलावों के साथ पुराने संस्करणों में भी काम करेंगे।

\n\n

1. अंतर्निहित JSON कार्य: System.Text.Json नेमस्पेस

\n\n

.NET Core 3.0 से शुरू करके, Microsoft ने उच्च-प्रदर्शन वाला System.Text.Json नेमस्पेस पेश किया। यह प्लेटफ़ॉर्म में अंतर्निहित है और अतिरिक्त पैकेज स्थापित करने की आवश्यकता नहीं है। यह आधुनिक .NET अनुप्रयोगों में JSON के साथ काम करने का मुख्य उपकरण है।

\n\n

1.1 ऑब्जेक्ट को JSON में सीरियलाइज़ करना

\n\n

सीरियलाइज़ेशन C# ऑब्जेक्ट को JSON स्ट्रिंग में बदलने की प्रक्रिया है। एक सरल Person क्लास पर विचार करें:

\n\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\n// उपयोग\nvar person = new Person\n{\n    Name = "इवान इवानोव",\n    Age = 30,\n    Email = "ivan@example.com"\n};\n\nstring json = System.Text.Json.JsonSerializer.Serialize(person);\nConsole.WriteLine(json);\n
\n\n

निष्पादन का परिणाम:

\n\n
{"Name":"इवान इवानोव","Age":30,"Email":"ivan@example.com"}
\n\n

डिफ़ॉल्ट रूप से, गुण C# में गुणों के नामों के समान नामों के साथ सीरियलाइज़ होते हैं। आप JsonSerializerOptions का उपयोग करके फ़ॉर्मेटिंग को कस्टमाइज़ कर सकते हैं, उदाहरण के लिए, JSON को अधिक पठनीय बनाने के लिए:

\n\n
var options = new System.Text.Json.JsonSerializerOptions\n{\n    WriteIndented = true\n};\n\nstring prettyJson = JsonSerializer.Serialize(person, options);\nConsole.WriteLine(prettyJson);\n
\n\n

अब आउटपुट इंडेंटेशन के साथ होगा:

\n\n
{\n  "Name": "इवान इवानोव",\n  "Age": 30,\n  "Email": "ivan@example.com"\n}
\n\n

1.2 JSON को ऑब्जेक्ट में डीसीरियलाइज़ (पार्स) करना

\n\n

उल्टी प्रक्रिया - JSON स्ट्रिंग को C# ऑब्जेक्ट में बदलना - डीसीरियलाइज़ेशन कहलाती है। JsonSerializer.Deserialize<T>() विधि का उपयोग करें:

\n\n
string jsonString = @"{""Name"":""मारिया पेट्रोवा"",""Age"":25,""Email"":""maria@example.com""}";\n\nPerson? person = System.Text.Json.JsonSerializer.Deserialize<Person>(jsonString);\n\nif (person != null)\n{\n    Console.WriteLine($"नाम: {person.Name}, आयु: {person.Age}");\n}\n
\n\n

महत्वपूर्ण: यदि JSON क्लास की संरचना से मेल नहीं खाता है, तो JsonException अपवाद फेंका जाएगा। सुरक्षित कार्य के लिए अपवाद हैंडलिंग का उपयोग करें या null की जाँच करें।

\n\n

1.3 मनमाने JSON के लिए JsonDocument के साथ काम करना

\n\n

कभी-कभी JSON की संरचना पहले से ज्ञात नहीं होती है या आप क्लास बनाए बिना डेटा पढ़ना चाहते हैं। इसके लिए JsonDocument का उपयोग करें:

\n\n
string jsonText = @"{""product"":""लैपटॉप"",""price"":75000,""inStock"":true}";\n\nusing JsonDocument doc = JsonDocument.Parse(jsonText);\nJsonElement root = doc.RootElement;\n\nstring product = root.GetProperty("product").GetString();\nint price = root.GetProperty("price").GetInt32();\nbool inStock = root.GetProperty("inStock").GetBoolean();\n\nConsole.WriteLine($"{product}: {price} रुपये (स्टॉक में: {inStock})");\n
\n\n

JsonDocument IDisposable को लागू करता है, इसलिए संसाधनों को मुक्त करने के लिए using का उपयोग करना सुनिश्चित करें।

\n\n

2. क्लासिकल लाइब्रेरी Newtonsoft.Json (Json.NET)

\n\n

System.Text.

ब्लॉग

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