JSON.NET
JSON.NET by James Newton-King is the library for working with JSON in .NET. The following is a small guide for using JSON.NET. It is in no way a substitute for the full documentation.
To follow along obtain the JSON.NET package using NuGet and the Newtonsoft.Json dll will be added to your project's references. Alternatively download from the official website and add the reference manually.
Serialize An Object And De-serialize
Serialization is the process of translating data structures or object state into a format that can be stored - Wikipedia.
We will start our investigation with a very simple C# object and continue from there. As always, we are using the Dog class:
public class Dog
{
public int Id { get; set; }
public string Name { get; set; }
public string Breed { get; set; }
public DateTime Birthday { get; set; }
public int CalculateAgeInDays()
{
return (DateTime.Now - Birthday).Days;
}
}
This is very simple class but might mirror something you need to serialize.
To start, let's create a dog and convert it to a string of Json (which I'll stop capitalising because it's a pain to type).
Dog dog = new Dog
{
Id = 4,
Breed = "Labradoodle",
Name = "Baron Von Lassie",
Birthday = Convert.ToDateTime("2013-01-07"),
};
string json = JsonConvert.SerializeObject(dog);
The string that we obtain is 'minified':
{"Id":4,"Name":"Baron Von Lassie","Breed":"Labradoodle","Birthday":"2013-01-07T00:00:00"}
As you can see all extraneous whitespace and extra line-breaks have been removed. This is ideal for data transfer objects such as a response from a Web Service, however if we're trying to present our data in a human readable way it's nicer to set Formatting.Indented
like so: