Nowadays so many times we will get requirement to do serialization and deserialization process in .net application.
Firstly we will know what this process is,
Serialization: It is the process of converting an object into a stream of bytes in order to store the object or transmit it to memory, a database, or a file. Its main purpose is to save the state of an object in order to be able to recreate it when needed.
Deserialization: It is the reverse process of Serialization.
In asp.net we can achieve it using so many ways
1. Using System.Runtime.Serialization.Json Namespace
2. Using System.Web.Script.Serialization; Namespace
3. Using Newtonsoft.Json; Open Source dll
Method 1 : using System.Runtime.Serialization.Json Namespace
In approach we will firstly create the C# object then convert into Json object and revert back to its original state
Step1: Create the C# Class like this and use System.Runtime.Serialization namespace as given below
using System.Runtime.Serialization; namespace WebApplication1 { [DataContract] public class Emp { [DataMember] public int Id { get; set; } [DataMember] public string EmpName { get; set; } [DataMember] public string EmpAddress { get; set; } } }
Step 2:
write the code in code behind file of asp.net as given below
using System; using System.IO; using System.Runtime.Serialization.Json; using System.Text; namespace WebApplication1 { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnMethod1_Click(object sender, EventArgs e) { //Serilization process using System.Runtime.Serialization Emp objEmp = new Emp() { Id = 1021, EmpName = "Chandradev", EmpAddress = "Bangalore" }; DataContractJsonSerializer objJS = new DataContractJsonSerializer(typeof(Emp)); string json = string.Empty; using (MemoryStream objMS = new MemoryStream()) { objJS.WriteObject(objMS, objEmp); objMS.Position = 0; using (StreamReader sr = new StreamReader(objMS)) { json = sr.ReadToEnd(); Response.Write("<b>Converting to Json </b> " + "</br>"); Response.Write("</br>"); Response.Write(json); sr.Close(); objMS.Close(); } } using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(json))) { Emp objEmp1 = (Emp)objJS.ReadObject(ms); Response.Write("</br>"); Response.Write("</br>"); Response.Write("<b>Converting Json to .Net Object</b>"); Response.Write("</br>"); Response.Write("</br>"); Response.Write("Id: " + objEmp1.Id + "</br>"); Response.Write("EmpName: " + objEmp1.EmpName + "</br>"); Response.Write("EmpAddress: " + objEmp1.EmpAddress + "</br>"); } } } }
Step 3: Now run the application you will see the process of serialization and deserialization.
Summary: This approach will be more suitable in WCF application.