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

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

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

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

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

\n\n

JSON (JavaScript Object Notation) एक हल्का डेटा एक्सचेंज फॉर्मेट है जो वेब डेवलपमेंट, मोबाइल ऐप्स और माइक्रोसर्विसेज़ में व्यापक रूप से उपयोग किया जाता है। C# डेवलपर के लिए JSON के साथ काम करना एक अनिवार्य कौशल है। इस लेख में, हम आधुनिक नेमस्पेस System.Text.Json का उपयोग करके JSON पार्सिंग (डी-सीरियलाइज़ेशन) और सीरियलाइज़ेशन की मूल बातें समझेंगे, जो .NET Core 3.0 और उससे ऊपर, साथ ही .NET 5/6/7/8 में शामिल है।

\n\n

हम निम्नलिखित विषयों को कवर करेंगे:

\n
    \n
  • सीरियलाइज़ेशन और डी-सीरियलाइज़ेशन क्या है
  • \n
  • C# ऑब्जेक्ट को JSON स्ट्रिंग में कैसे बदलें
  • \n
  • JSON को कैसे पढ़ें और उसे वापस ऑब्जेक्ट में बदलें
  • \n
  • नेस्टेड ऑब्जेक्ट और कलेक्शन के साथ काम करना
  • \n
  • एरर हैंडलिंग और सीरियलाइज़ेशन को कस्टमाइज़ करना
  • \n
\n\n

सभी कोड उदाहरण C# (.NET 6+) कंसोल एप्लिकेशन के लिए लिखे गए हैं। आप इन्हें कॉपी करके तुरंत चला सकते हैं।

\n\n

1. सीरियलाइज़ेशन की मूल बातें: ऑब्जेक्ट → JSON

\n\n

सीरियलाइज़ेशन एक प्रक्रिया है जिसमें किसी ऑब्जेक्ट (या डेटा स्ट्रक्चर) को JSON फॉर्मेट की स्ट्रिंग में बदला जाता है। C# में इसके लिए System.Text.Json नेमस्पेस के JsonSerializer क्लास का उपयोग किया जाता है।

\n\n

एक सरल मॉडल बनाना

\n\n

मान लीजिए हमारे पास एक 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

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

\n\n

अब एक इंस्टेंस बनाते हैं और उसे JSON में बदलते हैं:

\n\n
using System.Text.Json;\n\nPerson person = new Person\n{\n    Name = "राहुल शर्मा",\n    Age = 30,\n    Email = "rahul@example.com"\n};\n\nstring jsonString = JsonSerializer.Serialize(person);\nConsole.WriteLine(jsonString);
\n\n

परिणाम:

\n\n
{"Name":"राहुल शर्मा","Age":30,"Email":"rahul@example.com"}
\n\n

डिफ़ॉल्ट रूप से, JsonSerializer प्रॉपर्टी नामों के लिए camelCase का उपयोग करता है (पहला अक्षर छोटा), लेकिन हमारे उदाहरण में नाम बड़े अक्षरों में रहे क्योंकि हमने सेटिंग्स नहीं बदली। अगर आपको सख्त camelCase चाहिए, तो JsonSerializerOptions का उपयोग करें:

\n\n
var options = new JsonSerializerOptions\n{\n    PropertyNamingPolicy = JsonNamingPolicy.CamelCase\n};\nstring jsonCamelCase = JsonSerializer.Serialize(person, options);\nConsole.WriteLine(jsonCamelCase);\n// {"name":"राहुल शर्मा","age":30,"email":"rahul@example.com"}
\n\n

2. डी-सीरियलाइज़ेशन: JSON → ऑब्जेक्ट

\n\n

डी-सीरियलाइज़ेशन उल्टी प्रक्रिया है: हम JSON स्ट्रिंग लेते हैं और उसे C# ऑब्जेक्ट में बदलते हैं।

\n\n

डी-सीरियलाइज़ेशन का सरल उदाहरण

\n\n

मान लीजिए हमें API से JSON मिला:

\n\n
string jsonFromApi = @"{""Name"":""प्रिया सिंह"",""Age"":25,""Email"":""priya@test.com""}";\n\nPerson? personFromJson = JsonSerializer.Deserialize<Person>(jsonFromApi);\n\nif (personFromJson != null)\n{\n    Console.WriteLine($"नाम: {personFromJson.Name}, उम्र: {personFromJson.Age}");\n}
\n\n

Person टाइप के बाद ? चिह्न पर ध्यान दें — यह nullable-एनोटेशन है, जो बताता है कि परिणाम null हो सकता है (उदाहरण के लिए, अगर JSON गलत है)।

\n\n

एरे और लिस्ट के साथ काम करना

\n\n

अक्सर JSON में ऑब्जेक्ट का कलेक्शन होता है। मान लीजिए हमारे पास उपयोगकर्ताओं की एक एरे है:

\n\n
string jsonArray = @"\n[\n    {""Name"":""अमित"",""Age"":35},\n    {""Name"":""सीमा"",""Age"":28},\n    {""Name"":""विकास"",""Age"":42}\n]";\n\nList<Person>? people = JsonSerializer.Deserialize<List<Person>>(jsonArray);\n\nif (people != null)\n{\n    foreach (var p in people)\n    {\n        Console.WriteLine($"{p.Name} - {p.Age} साल");\n    }\n}
\n\n

3. नेस्टेड ऑब्जेक्ट और जटिल स्ट्रक्चर के साथ काम करना

\n\n

वास्तविक JSON डेटा शायद ही कभी फ्लैट होता है। आइए देखें

ब्लॉग

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