- Course
- Data serialization
- Newtonsoft.Json: Serialize objects
Newtonsoft.Json: Serialize objects
Last updated:
8/23/2020
⁃
Difficulty:
Intermediate
Create a C# program to serialize and deserialize objects in JSON format. For this you can use the JsonConvert
class included in the Newtonsoft.Json
namespace.
To install the library in VS Code you can run dotnet add package Newtonsoft.Json
in terminal.
First implement a Person class with three properties (Name, Age and City). The City class will have two properties (Name and Population). Then create a person object and use the JsonConvert
object's serializer to save the data in a .json file, later deserialize the.json file and print it on screen. Remember to prepare a ToString ()
method to print the Persona class.
Input
Output
Solution
using System;
using System.IO;
using System.Text;
using Newtonsoft.Json;
public class NewtonsoftJsonSerializer
{
static string nameFile = "out.json";
public static void Main(string[] args)
{
Person person = new Person(){ Name = "Nauj", Age = 26, City = new City(){ Name = "Spain", Population = 13456766 } };
Serialize(person);
person = Deserialize();
Console.WriteLine(person.ToString());
}
public static void Serialize(Person p)
{
string jsonData = JsonConvert.SerializeObject(p);
File.WriteAllText(nameFile, jsonData);
}
public static Person Deserialize()
{
string jsonData = File.ReadAllText(nameFile);
return JsonConvert.DeserializeObject<Person>(jsonData);
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public City City { get; set; }
public override string ToString()
{
StringBuilder str = new StringBuilder();
str.AppendLine("Name: " + Name);
str.AppendLine("Age: " + Age);
str.AppendLine("City: " + City.Name);
return str.ToString();
}
}
public class City
{
public string Name { get; set; }
public int Population { get; set; }
}
}