CLR Object and JSON Serialization and Deserialization

Introduction

This article demonstrates how to serialize and deserialize CLR objects for web-based applications. This article starts with an introduction to the System.Web.Script.Serialization.JavaScriptSerializer class. After that, a small code snippet is given for it and where exactly this approach fits into the web-based application
 
Reference: http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx

System.Object
System.Web.Script.Serialization.JavaScriptSerializer

Namespace: System.Web.Script.Serialization

Assembly: System.Web.Extensions (in System.Web.Extensions.dll)

Provides serialization and deserialization functionality for AJAX-enabled applications.

Creating CLR object

A plain CLS object, which has a few classes, attributes and necessary methods as shown below:

    class Person

    {

        public string firstName, lastName, Designation;

        public ushort age;

        public string[] technologies;

        public Address personAddress;

 

 

        public override string ToString()

        {

            base.ToString();

 

            return string.Format(

                @"Name: {0} {1}

                Designation: {2}

                Age: {3}

                Skills: {4}

                Address: {5} {6}, {7}",

                this.firstName,this.lastName,

                this.Designation,

                this.age,

                string.Join(","this.technologies),

                this.personAddress.addressLinethis.personAddress.citythis.personAddress.country);

        }

    }

    

class Address

    {

        public string addressLine, city, country;

    }

Initiating and printing the CLR object to the console:
 

  Person I = new Person();

  I.firstName = "Adil";

  I.lastName = "Ansari";

  I.Designation = "Consultant";

  I.age=25;

  Address personAddres = new Address() { addressLine = "Vikhroli LBS West"

                                           city = "Mumbai", country = "IN" };

  I.personAddress = personAddres;

  I.technologies= new string[]{".Net","SQL","SharePoint"};

 

 

  // Entity to string

  Console.WriteLine("Entity:" + Environment.NewLine + I);

  Console.ReadLine();

Output to the console

 

CLRJSON1.jpg

Serialization and Deserialization

Now to serialize and deserialize the CLR and JSON, a class JavaScriptSerializer needs to be initiated and its instance method will be used to do so, as listed below:

  • public string Serialize(Object obj)

    Converts an object to a JSON string.
     

  • public T Deserialize<T>(string input)

    Converts the specified JSON string to an object of type T.
     

      JavaScriptSerializer jsSerializer = new JavaScriptSerializer();

      string serializedPerson = jsSerializer.Serialize(I);

     

       // Serialized entity string 

       Console.WriteLine("Entity to JSON:" + Environment.NewLine + serializedPerson);


    CLRJSON2.jpg
     

       // Deserialized entity back to CLR object

       Person Same = jsSerializer.Deserialize<Person>(serializedPerson);

     

       Console.WriteLine("Back to Entity:" + Environment.NewLine + Same);

    CLRJSON3.jpg

Summary

In this article, I discussed how to serialize and deserialize a CLR object to and from JSON using C# with an example. Instead of using any third party DLLs for this purpose, we can have the native .Net capabilities available to us.
 

Up Next
    Ebook Download
    View all
    Learn
    View all