Skip to main content
CheckTown
कन्वर्टर

JSON से C#: API प्रतिक्रियाओं से .NET क्लास जेनरेट करें

प्रकाशित 5 मिनट का पठन
इस लेख में

JSON से C# क्लास क्यों जनरेट करें?

.NET या Unity में REST API के साथ काम करते समय, आपको JSON प्रतिक्रियाओं को डीसीरियलाइज़ करने के लिए सशक्त-टाइप की गई C# क्लास की आवश्यकता होती है। इन क्लास को हाथ से लिखना थकाऊ और त्रुटियों की संभावना वाला काम है, खासकर दर्जनों प्रॉपर्टी वाले गहराई से नेस्टेड API पेलोड के लिए। एक JSON से C# जनरेटर JSON संरचना का विश्लेषण करता है और उपयोग के लिए तैयार क्लास परिभाषाएँ स्वचालित रूप से तैयार करता है।

यह तेज़ प्रोटोटाइपिंग के दौरान विशेष रूप से मूल्यवान है। आप एक नमूना API प्रतिक्रिया पेस्ट करते हैं, बिल्कुल संरचित C# क्लास प्राप्त करते हैं, और गतिशील ऑब्जेक्ट या डिक्शनरी लुकअप से जूझने के बजाय तुरंत टाइप किए गए डेटा के साथ काम करना शुरू कर देते हैं। जनरेट किया गया कोड C# परंपराओं का पालन करता है और आपके चुने हुए फ़्रेमवर्क के लिए सही सीरियलाइज़ेशन एट्रिब्यूट शामिल करता है।

आउटपुट मोड और सीरियलाइज़ेशन विकल्प

जनरेटर आपकी परियोजना की कोडिंग शैली और .NET संस्करण से मेल खाने के लिए कई आउटपुट प्रारूपों का समर्थन करता है। प्रत्येक मोड ऐसा उपयुक्त C# तैयार करता है जो बिना किसी संशोधन के कंपाइल होता है।

  • Class बनाम Record — पुरानी .NET परियोजनाओं के लिए पारंपरिक परिवर्तनीय क्लास, या अंतर्निहित मान समानता के साथ अपरिवर्तनीय डेटा ट्रांसफ़र ऑब्जेक्ट के लिए C# 9+ रिकॉर्ड
  • System.Text.Json — .NET Core 3.1+ में निर्मित आधुनिक, उच्च-प्रदर्शन सीरियलाइज़र जो प्रॉपर्टी मैपिंग के लिए [JsonPropertyName] एट्रिब्यूट का उपयोग करता है
  • Newtonsoft.Json — व्यापक रूप से उपयोग की जाने वाली Json.NET लाइब्रेरी जो [JsonProperty] एट्रिब्यूट का उपयोग करती है, अभी भी लीगेसी .NET Framework और Unity परियोजनाओं में प्रमुख है

निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं

JSON को C# में बदलें →

C# नामकरण परंपराएँ और एनोटेशन

C# सख़्त नामकरण परंपराओं का पालन करता है जो JSON के सामान्य camelCase या snake_case से भिन्न हैं। जनरेटर सीरियलाइज़ेशन एट्रिब्यूट के माध्यम से मूल JSON प्रॉपर्टी नामों को संरक्षित रखते हुए इन परिवर्तनों को स्वचालित रूप से लागू करता है।

  • PascalCase प्रॉपर्टी — Microsoft के .NET नामकरण दिशानिर्देशों का पालन करते हुए सभी जनरेट की गई प्रॉपर्टी नामों को PascalCase में बदल दिया जाता है (जैसे, user_name बन जाता है UserName)
  • एनोटेशन पैटर्न — प्रत्येक प्रॉपर्टी में उपयुक्त सीरियलाइज़ेशन एट्रिब्यूट ([JsonPropertyName] या [JsonProperty]) शामिल होता है जो PascalCase प्रॉपर्टी को वापस मूल JSON कुंजी नाम पर मैप करता है
  • टाइप इनफ़रेंस — जनरेटर JSON मानों से C# टाइप का अनुमान लगाता है: स्ट्रिंग string बन जाती हैं, संख्याएँ int या double बन जाती हैं, बूलियन bool बन जाते हैं, और null मान नल-योग्य संदर्भ प्रकार बन जाते हैं

अक्सर पूछे जाने वाले प्रश्न

जनरेटर नल-योग्य संदर्भ प्रकारों को कैसे संभालता है?

जब कोई JSON मान null होता है, तो जनरेटर एक नल-योग्य संदर्भ प्रकार तैयार करता है (string के बजाय string?)। यह C# 8+ नल-योग्य संदर्भ प्रकार परंपराओं का पालन करता है और आपको रनटाइम के बजाय कंपाइल टाइम पर संभावित नल संदर्भ अपवादों को पकड़ने में मदद करता है।

JSON ऐरे के लिए मुझे List<T> या arrays का उपयोग करना चाहिए?

जनरेटर डिफ़ॉल्ट रूप से List<T> का उपयोग करता है क्योंकि यह समृद्ध कार्यक्षमता (Add, Remove, Contains) प्रदान करता है और C# कोडबेस में सबसे आम संग्रह प्रकार है। यदि आपको प्रदर्शन-महत्वपूर्ण परिदृश्यों या निश्चित-आकार संग्रह की आवश्यकता वाले API अनुबंधों के लिए arrays चाहिए, तो आप जनरेट किए गए प्रकार को मैन्युअल रूप से बदल सकते हैं।

क्या मैं क्लास के बजाय रिकॉर्ड जनरेट कर सकता हूँ?

हाँ। रिकॉर्ड आउटपुट मोड init-only प्रॉपर्टी के साथ C# 9+ रिकॉर्ड प्रकार जनरेट करता है। रिकॉर्ड डेटा ट्रांसफ़र ऑब्जेक्ट के लिए आदर्श हैं क्योंकि वे अपरिवर्तनीयता, मान-आधारित समानता, और स्थितीय पैरामीटर के साथ संक्षिप्त सिंटैक्स प्रदान करते हैं। कंपाइल करने के लिए इन्हें .NET 5+ या C# 9+ की आवश्यकता होती है।

संबंधित टूल