Updated April 14, 2023
Introduction to Convert Object to JSON C#
The current state of the object must be obtained to store it or to retrieve it later and this should be considered when coding, custom code is added to output the state of the object and this is called converting object to Json string in C# and coding must be done for each and every property of the object depending on the type of knowledge we have on the type of object. The code must be changed as and when there are changes in the definition of the object type and we make use of Newtonsoft’s Json.NET library to convert an object to Json in C# which provides us a complete representation of string of our objects using a code written in single line.
Syntax:
Variable variable_name =Newtonsoft.Json.JsonConvert.SerializeObject(parameter);
Conversion of Object to JSON String in C#
- Lets see how serialization of objects which is nothing but converting the objects to Json string in C# is done using NewtonsoftJson.
- A new visual studio project is created as the first step of converting the object to Json string.
- NewtonsoftJson is installed using Nuget.
- An example class is created to serialize which is nothing but converting the object to Json string.
- Then methods are created to convert the object to Json string or serialize the objects in C#.
- Finally, the program is executed to serialize the object in C# which is nothing but converting the object to Json string in C#.
Examples of Convert Object to JSON C#
Given below are the examples mentioned:
Example #1
C# program to demonstrate conversion of object to Json string which is nothing but serialization of objects in C#.
Code:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
//a namespace called Serial is defined
namespace Serial
{
//a class called Data is defined
public class Data
{
//a string variable is defined which can be set or retrieved using get or set method
public string Name1 { get; set; }
//a list is defined which can be set or retrieved using get or set method
public List<int> Ids { get; set; }
//a method called Print is defined in which the name and the list is printed
public void Print()
{
Console.WriteLine("The Name is: " + Name1);
Console.WriteLine("The Identifiers used are: " + string.Join<int>(",", Ids));
Console.WriteLine();
Console.WriteLine();
}
}
//a class called check is defined
public class Check
{
//a file path is defined and stored in a string variable
const string fPath = @"d:\ex.txt";
//Serialize method is defined in which instances of Json writer and Stream writer classes are defined to write into the file
public static void Serialize(object ob)
{
varserialise = new JsonSerializer();
using (var ns = new StreamWriter(fPath))
using (JsonWriter writer1 = new JsonTextWriter(ns))
{
serialise.Serialize(writer1, ob);
}
}
//Deserialize method is defined in which instances of Json text reader and Stream reader classes are defined to read from the file
public static object Deserialize(string pa)
{
varserialise = new JsonSerializer();
using (var ns = new StreamReader(pa))
using (var reader1 = new JsonTextReader(ns))
{
return serialise.Deserialize(reader1);
}
}
//main method is called
public static void Main(string[] args)
{
vardat = new Data
{
Name1 = "ShobhaShivakumar",
Ids = new List<int>{ 10, 20, 30, 40 }
};
Console.WriteLine("Before serialization of the objects, the list of the objects are:");
Console.WriteLine("-------------------------------------------------------------------");
Console.WriteLine();
dat.Print();
Serialize(dat);
vardeserialise = Deserialize(fPath);
Console.WriteLine("After de-serialization of the object, the objects are:");
Console.WriteLine("---------------------------");
Console.WriteLine();
Console.WriteLine(deserialise);
}
}
}
Output:
Explanation:
- In the above program, a namespace called Serial is defined. Then a class called Data is defined. Then a string variable is defined which can be set or retrieved using get or set method. Then a list is defined which can be set or retrieved using get or set method. Then a method called Print is defined in which the name and the list is printed. Then a class called check is defined. Then a file path is defined and stored in a string variable.
- Then Serialize method is defined in which instances of Jsonwriter and Streamwriter classes are defined to write into the file. Then De serialize method is defined in which instances of Jsontext reader and Streamreader classes are defined to read from the file. Then the main method is called which calls the method to display the output before serialization of object.
Example #2
C# program to demonstrate the difference between manual serialization and Json serialization in a program.
Code:
using System;
using System.Text;
using System.Collections.Generic;
//a class called check is defined
public class Check
{
//main method is called
public static void Main()
{
//an instance of the Create request1 class and string builder class is created
var request = CreateRequest1();
var output1 = new StringBuilder();
//Since we are using manual serialization here, we have to output the properties manually
output1.AppendFormat("The unique ID is: {0}\n", request.UniqueID);
output1.AppendFormat("The unique Name is: {0}\n", request.UniqueName);
output1.AppendFormat("The unique Surname is: {0}\n", request.UniqueSurname);
output1.AppendFormat("The Last Sign In is: {0}\n", request.UniqueLastSignIn);
//We need to make use of for loop to output the nested attributes in case of manual serialization
output1.AppendFormat("The Attributes are:\n");
foreach (varsh in request.UniqueAttributes)
{
output1.AppendFormat(" {0}\n", sh);
}
Console.WriteLine(output1.ToString());
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(request);
//We are using Json serialization to improve the readability
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(request, Newtonsoft.Json.Formatting.Indented));
}
//a method called Create request1 is defined
public static Req CreateRequest1()
{
return new Req
{
UniqueID = 10,
UniqueName = "Shobha",
UniqueSurname = "Shivakumar",
UniqueLastSignIn = DateTime.Now,
UniqueAttributes = new List<string>
{
"Beautiful",
"Tall",
"Intelligent",
"Wise",
}
};
}
//a class called req is created
public class Req
{
public intUniqueID {get;set;}
public string UniqueName {get;set;}
public string UniqueSurname {get;set;}
public DateTimeUniqueLastSignIn {get;set;}
public List<string>UniqueAttributes {get;set;}
}
}
Output:
Explanation:
- In the above program, a class called check is defined. Then main method is called. Then an instance of the Create request1 class and string builder class is created. Then since we are using manual serialization here, we have to output the properties manually. Then we need to make use of for loop to output the nested attributes as this is the case of manual serialization.
- Then we are using Json serialization to improve the readability. Then a method called Create request1 is defined. Then a class called req is created in which all the attributes are set and retrieved using get or set method.
Recommended Articles
This is a guide to Convert Object to JSON C#. Here we discuss the conversion of object to JSON string in C# and examples respectively. You may also have a look at the following articles to learn more –