JSON से C# क्लास

JSON से C# क्लास बनाएँ: PascalCase प्रॉपर्टी, [JsonPropertyName] एट्रिब्यूट, nullable reference टाइप और List<T> कलेक्शन के साथ। मुफ़्त और निजी।

System.Text.Json एट्रिब्यूट और nullable रेफ़रेंस टाइप (string?, long?) इस्तेमाल करता है।

पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।

संबंधित टूल्स

सभी देखें

JSON से C# क्या है?

JSON नमूने को System.Text.Json के लिए C# क्लास में बदलें। हर प्रॉपर्टी PascalCase में होती है, मूल कुंजी वाला [JsonPropertyName("…")] एट्रिब्यूट रखती है और जहाँ नमूने में null या गायब मान हों वहाँ nullable टाइप इस्तेमाल करती है।

JSON से C# का उपयोग कैसे करें

  1. JSON इनपुट में JSON नमूना पेस्ट करें (या उदाहरण लोड करें / फ़ाइल खोलें दबाएँ)।
  2. रूट टाइप का नाम तय करें (डिफ़ॉल्ट Root)।
  3. बना हुआ C# कोड कॉपी करें या फ़ाइल के रूप में डाउनलोड करें।

उदाहरण

इनपुट
{"id":1,"name":"A","tags":["x"]}
आउटपुट
using System.Collections.Generic;
using System.Text.Json.Serialization;

public class Root
{
    [JsonPropertyName("id")]
    public long Id { get; set; }

    [JsonPropertyName("name")]
    public string Name { get; set; } = string.Empty;

    [JsonPropertyName("tags")]
    public List<string> Tags { get; set; } = new();
}

JSON से C# का उपयोग कब करें

.NET HTTP क्लाइंट, ASP.NET मॉडल या टेस्ट डेटा के लिए इसका उपयोग करें। Newtonsoft.Json के लिए एट्रिब्यूट को [JsonProperty] से बदलें; पैसे के मानों के लिए double को decimal करने पर विचार करें।

JSON से C# कैसे काम करता है

नमूने को रिकर्सिव ढंग से पढ़ा जाता है और हर स्थान उन टाइप को इकट्ठा करता है जो उसने देखे। ऑब्जेक्ट के ऐरे एक टाइप में मिला दिए जाते हैं: जो कुंजी कुछ एलिमेंट में नहीं है वह वैकल्पिक बन जाती है, जो कुंजी कहीं null है वह nullable बन जाती है, दशमलव के साथ मिले पूर्णांक फ़्लोटिंग-पॉइंट टाइप बनते हैं, और बाकी हर मिश्रित टाइप डायनैमिक टाइप पर चला जाता है। नेस्टेड ऑब्जेक्ट अपने नामित टाइप बनते हैं (कुंजी का PascalCase, ऐरे कुंजियों का एकवचन: orders → Order), और नाम टकराने पर अंक जुड़ते हैं। C# आउटपुट पूर्णांक को long, दशमलव को double, स्ट्रिंग को string, बूलियन को bool, ऐरे को List<T>, नेस्टेड ऑब्जेक्ट को उनकी अपनी क्लास और डायनैमिक मानों को object? से मैप करता है। Nullable या वैकल्पिक मानों को ? मिलता है; non-nullable स्ट्रिंग string.Empty से और लिस्ट या ऑब्जेक्ट new() से इनिशियलाइज़ होते हैं, ताकि nullable reference टाइप चालू होने पर कोड साफ़ कंपाइल हो।

सामान्य उपयोग मामले

  • HttpClient और System.Text.Json से API रिस्पॉन्स डिसीरियलाइज़ करना
  • ASP.NET कंट्रोलर के लिए request/response मॉडल बनाना
  • JSON कॉन्फ़िगरेशन सेक्शन का मॉडल बनाना
  • Azure Function ट्रिगर के लिए क्लास बनाना

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

हर प्रॉपर्टी पर एनोटेशन क्यों है?

एट्रिब्यूट C# नाम अलग होने पर भी सटीक JSON कुंजी बनाए रखता है, इसलिए नामकरण नीति कुछ भी हो, सीरियलाइज़ेशन का round-trip सही रहता है।

decimal की जगह double क्यों?

JSON में decimal टाइप नहीं होता; double वही है जो पार्सर बनाता है। मुद्रा मानों के लिए decimal इस्तेमाल करें।

क्या यह Newtonsoft.Json के साथ चलता है?

हाँ, [JsonPropertyName] को [JsonProperty] और using निर्देश से बदलने के बाद।

और श्रेणियाँ देखें