Skip to main content

Serialization & Deserialization using JSON In C#

Introduction

The very useful method of converting JSON object to .Net object and .Net object to Json object is using the JsonConvert. It converts Json objects to .Net object and with the Same property with value and .Net objects to equivalent JSON object.

In this article we will see how to serialize .NET type objects into JSON object and then deserialize data in the JSON format back into .NET types using the JsonConvert class.

What is JSON?

JSON (JavaScript Object Notation) is one lightweight and efficient data exchange format or we can say like JSON is most desirable data encoding format which allows fast exchanges of small amounts of data between client browsers and web services or web api.

JsonConvert

JsonConvert class is in the namespace “Newtonsoft.Json” and for this namespace you need to add reference of Newtonsoft.Json dll or nuget package. You can install a Newtonsoft.Json nuget package by command “Install-Package Newtonsoft.Json” in package manager console.

If we want to convert .Net object to Json object then the SerializeObject() method will be used and when we want to convert Json object back to .Net object then DeserializeObject() method will be used from the JsonConvert class

JSON Serialization

Now lets see the JSON Serialization process with code example, we have an instance of Customer class as below

public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string PhoneNo { get; set; }
}

Now create an object of Customer class and initilize value of each properties. Then call SerializeObject() of JsonConvert class with passing Customer object.
See the below codesnippet

// Serializaion .Net Object
Customer customer = new Customer();
customer.Id = 1;
customer.Name = "Tarun Dudhatra";
customer.Email = "email@address.com";
customer.PhoneNo = "5*9*9 5*8*5";

// Convert Customer object to JOSN encoded format
string jsonDataString = JsonConvert.SerializeObject(customer);

Console.Write(jsonDataString);
Console.ReadKey();

It will return the JSON string as below

{"Id":1,"Name":"Tarun Dudhatra","Email":"email@address.com","PhoneNo":"5*9*9 5*8*5"}

JSON Deserialization

See the below JSON Deserialization process with code example, we have same Customer class string as below

{"Id":2,"Name":"FirstName LastName","Email":"email@address.com","PhoneNo":"5*9*9 5*8*5"}

Now call the DeserializeObject() of JsonConvert class and pass the object type of Customer so it will deserialize it into Customer Class.
See the below codesnippet

Deserializaion JSON Object

string JSONObject = @"{ 'Id':2,'Name':'FirstName LastName','Email':'email@address.com','PhoneNo':'5*9*9 5*8*5'}";

Customer customer = JsonConvert.DeserializeObject<Customer>(JSONObject);

Console.WriteLine( "Id : " + customer.Id);
Console.WriteLine( "Name : " + customer.Name);
Console.WriteLine( "Email: " + customer.Email);
Console.WriteLine( "Phone: " + customer.PhoneNo);
Console.ReadKey();

It will print the below out put on the screen

Id : 2
Name : FirstName LastName
Email: email@address.com
Phone: 5*9*9 5*8*5

That’s it, in my upcoming article we will see other interesting stuff like this.

Explore the Use of System.Environment Class

System.Environment class can not be inherited. It provides valuable information about current platform and environment of the system.
It uses to retrieve environment variable settings, version of the CLR and call stack contents etc.

It has various methods and property to get the useful information about current working environment. Lets have a look on some of most used properties.

Get the Machine Name
– To Get the current system’s machine name we can use MachineName property of Environment class.

For example :
Console.WriteLine(“Machine Name :” + Environment.MachineName);

Get the Current Working Directory
– To Get the current working directory we can use CurrentDirectory property of Environment class.

For example :
Console.WriteLine(“Current Directory :” + Environment.CurrentDirectory);

Get the Current UserName of the system
– To Get the current user name we can use UserName property of the Environment class.

For example :
Console.WriteLine(“User Name :” + Environment.UserName);
Get the current Operating System Version ?
– To Get teh current OS Version we can use OSVersion property of the Environment class.

For example :
Console.WriteLine(“OS Version :” + Environment.OSVersion);

See the below Full C# code.

using System;

namespace SystemEnv
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Line 1");
            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Line 2");
            Console.WriteLine("Machine Name :" + Environment.MachineName);
            Console.WriteLine("Current Directory :" + Environment.CurrentDirectory);
            Console.WriteLine("OS Version :" + Environment.OSVersion);
            Console.WriteLine("User Name :" + Environment.UserName);
            Console.Read();
        }
    }
}

What is the Difference between Build, Rebuild and Clean in Visual Studio?

If you are a Microsoft Asp.Net Developer then usually you came across this words like Build, Rebuild and Clean.

This article gives you explanation about Difference between Build, Rebuild and Clean


If you are using Visual studio you might have question that what is difference between Build, Rebuild and Clean ? here we are going to understand the diversity between them.

Build Solution :
When we build any solution then Visual studio will build/compile all assemblies (Dlls and EXE’s) that are changed, it is basically incremental or partial process in which only CHANGED assemblies are compiled if there is no changed assemblies it won’t get build

Rebuild Solution:
It is full compiled case, in which all assemblies (either changed or not) are deleted and recompiled again, irrespective of changed or not

Clean Solution:
It is not compile case, it just delete all assemblies (Dlls and EXE’s) from folder but not compiled them again, it remove all compiled files from previous build

Hope you understand this simple article