SIGN UP MEMBER LOGIN:    
ARTICLE

Serialize Object Using Json

Posted by Nipun Tomar Articles | Current Affairs September 06, 2010
If you want to serialize any object to or from JSON (JavaScript object Notation). You can use DataContractJsonSerializer's WriteObject and ReadObject methods to serialize and deserialize respectively.
Reader Level:

If you want to serialize any object to or from JSON (JavaScript object Notation). You can use DataContract JsonSerializer's WriteObject and ReadObject methods to serialize and deserialize respectively. Following is the small example code:

Note: you must include the reference to System.Runtime.Serialization assembly

using System;
using System.Collections.Generic;
using System.Runtime.Serialization.Json;
using System.Linq;
using System.IO;
using System.Text;

namespace
SerializeObjectUsingJSON
{
    class Program
    {
        static void Main(string[] args)
        {
            //Create a list of string
            List<string> list = new List<string>()
            {
                "item1","item2","item3","item4","item5"
            };
            //create memorystream
            MemoryStream memoryStream = new MemoryStream();
            //create Json serializer
            //constructor argument must contain the type of object that is to be serailized/deserialized
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(list.GetType());
            //serialize the list
            serializer.WriteObject(memoryStream, list);
            //get Json string from stream
            string str = Encoding.Default.GetString(memoryStream.ToArray());
            //write the string to console
            Console.WriteLine(str);
            //read Json data to stream
            memoryStream = new MemoryStream(Encoding.Default.GetBytes(str));
            //deserialize list
            list = serializer.ReadObject(memoryStream) as List<string>;
            //strings in the list
            foreach (string s in list)
                Console.WriteLine(s);
            Console.ReadLine();
        }
    }
}

Output:

JSON.gif

To serialize any datatype use [Serializable] annotation

[Serializable]
    class JasonTypeFull
    {
        public string property1 { get; set; }
        public string property2 { get; set; }
        public string property3 { get; set; }
    }


Or you can use [DataContract] and [DataMember] to selectively serialize class members

[DataContract]
    class JasonTypePartial
    {
        [DataMember]
        public string property1 { get; set; }
        public string property2 { get; set; }
        [DataMember]
        public string property3 { get; set; }
    }

Login to add your contents and source code to this article
share this article :
post comment
 
Team Foundation Server Hosting
Become a Sponsor
PREMIUM SPONSORS
  • Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
    Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites - Click Here!
Nevron Gauge for SharePoint
Become a Sponsor