खोज…


परिचय

निम्नलिखित विषय सी # भाषा और सीरियललाइज़ेशन और डिसेरिएलाइज़ेशन की अवधारणाओं का उपयोग करके जसन के साथ काम करने का एक तरीका पेश करेगा।

सरल Json उदाहरण

{
    "id": 89,
    "name": "Aldous Huxley",
    "type": "Author",
    "books":[{
               "name": "Brave New World",
               "date": 1932 
             },
             {
               "name": "Eyeless in Gaza",
               "date": 1936
             },
             {
               "name": "The Genius and the Goddess",
               "date": 1955 
             }]  
}

यदि आप Json में नए हैं, तो यहाँ एक विस्तृत ट्यूटोरियल है

पहली चीजें पहली: लाइब्रेरी जोसन के साथ काम करने के लिए

Json के साथ C # का उपयोग करने के लिए, इसे Newtonsoft (.net पुस्तकालय) का उपयोग करने की आवश्यकता है। यह लाइब्रेरी उन तरीकों को प्रदान करती है जो प्रोग्रामर को क्रमबद्ध और वस्तुओं को और अधिक से अधिक हटाने की अनुमति देती है। एक ट्यूटोरियल है यदि आप इसके तरीकों और उपयोगों के बारे में विवरण जानना चाहते हैं।

यदि आप विज़ुअल स्टूडियो का उपयोग करते हैं, तो टूल / नगेट पैकेज मैनेजर / मैनेज पैकेज टू सॉल्यूशन पर जाएं और सर्च बार में "न्यूटनसॉफ्ट" टाइप करें और पैकेज इंस्टॉल करें। यदि आपके पास NuGet नहीं है, तो यह विस्तृत ट्यूटोरियल आपकी मदद कर सकता है।

C # कार्यान्वयन

कुछ कोड पढ़ने से पहले, मुख्य अवधारणाओं को अंडरस्टैंड करना महत्वपूर्ण है जो कि json का उपयोग करके एप्लिकेशन को प्रोग्राम करने में मदद करेगा।

सीरियलाइजेशन : किसी वस्तु को बाइट्स की एक धारा में परिवर्तित करने की प्रक्रिया जिसे अनुप्रयोगों के माध्यम से भेजा जा सकता है। निम्न कोड को क्रमबद्ध किया जा सकता है और पिछले जोंस में परिवर्तित किया जा सकता है।

देशीकरण : किसी वस्तु में बाइट्स के json / धारा को परिवर्तित करने की प्रक्रिया। इसके क्रमबद्धता की बिल्कुल विपरीत प्रक्रिया है। पिछले उदाहरण को नीचे दिए गए उदाहरणों में दिखाए गए अनुसार सी # ऑब्जेक्ट में deserialized किया जा सकता है।

इसे बाहर काम करने के लिए, पहले से वर्णित प्रक्रियाओं का उपयोग करने के लिए कक्षाओं में जसन संरचना को चालू करना महत्वपूर्ण है। यदि आप विज़ुअल स्टूडियो का उपयोग करते हैं, तो आप केवल "एडिट / पेस्ट स्पेशल / पेस्ट जेन्सन इन क्लासेस" का चयन करके और json संरचना को चिपकाने के द्वारा एक वर्ग को स्वचालित रूप से एक वर्ग में बदल सकते हैं।

using Newtonsoft.Json;

  class Author
{
    [JsonProperty("id")] // Set the variable below to represent the json attribute 
    public int id;       //"id"
    [JsonProperty("name")]
    public string name;
    [JsonProperty("type")]
    public string type;
    [JsonProperty("books")]
    public Book[] books;

    public Author(int id, string name, string type, Book[] books) {
        this.id = id;
        this.name = name;
        this.type= type;
        this.books = books;
    }
}

 class Book
{
   [JsonProperty("name")]
   public string name;
   [JsonProperty("date")]
   public DateTime date;
}

क्रमबद्धता

 static void Main(string[] args)
    {
        Book[] books = new Book[3];
        Author author = new Author(89,"Aldous Huxley","Author",books);
        string objectDeserialized = JsonConvert.SerializeObject(author); 
        //Converting author into json
    }

विधि ".SerializeObject" पैरामीटर के रूप में एक प्रकार की वस्तु प्राप्त करता है, इसलिए आप इसमें कुछ भी डाल सकते हैं।

deserialization

आप कहीं से भी एक जसन प्राप्त कर सकते हैं, एक फ़ाइल या एक सर्वर भी तो यह निम्नलिखित कोड में शामिल नहीं है।

static void Main(string[] args)
{
    string jsonExample; // Has the previous json
    Author author = JsonConvert.DeserializeObject<Author>(jsonExample);
}

विधि ".DeserializeObject" एक " लेखक " ऑब्जेक्ट में ' jsonExample ' को deserializes। यही कारण है कि कक्षाओं की परिभाषा में जसन चर को सेट करना महत्वपूर्ण है, इसलिए इसे भरने के लिए विधि इसे एक्सेस करती है।

सीरियलाइज़ेशन और डी-सीरियलाइज़ेशन कॉमन यूटिलिटीज़ फ़ंक्शन

यह नमूना सभी प्रकार के ऑब्जेक्ट क्रमांकन और डीरिएरलाइज़ेशन के लिए सामान्य फ़ंक्शन के लिए उपयोग किया जाता है।

using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;

namespace Framework
{
public static class IGUtilities
{
        public static string Serialization(this T obj)
        {
        string data = JsonConvert.SerializeObject(obj);
        return data;
        }

        public static T Deserialization(this string JsonData)
        {
        T copy = JsonConvert.DeserializeObject(JsonData);
        return copy;
        }

         public static T Clone(this T obj)
        {
            string data = JsonConvert.SerializeObject(obj);
            T copy = JsonConvert.DeserializeObject(data);
            return copy;
        }
}
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow