- Curso
- Serialización de datos
- Newtonsoft.Json: Serializar objetos
Newtonsoft.Json: Serializar objetos
Última actualización:
23/08/2020
⁃
Dificultad:
Intermedio
Crea un programa en C# para serializar y deserializar objetos en formato JSON. Para ello puede utilizar la clase JsonConvert
incluida en el espacio de nombres Newtonsoft.Json
.
Para instalar la librería en VS Code puede ejecutar dotnet add package Newtonsoft.Json
en la terminal.
Primero implementa una clase Persona con tres propiedades (Nombre, Edad y Ciudad). La clase Ciudad tendrá dos propiedades (Nombre y Población). Luego crea un objeto persona y utiliza el serializador del objeto JsonConvert
para guardar los datos en un archivo.json, más tarde, deserializa el archivo.json y imprímelo en pantalla. Recuerde preparar un método ToString()
para imprimir la clase Persona.
Entrada
Salida
Solución
using System;
using System.IO;
using System.Text;
using Newtonsoft.Json;
public class NewtonsoftJsonSerializacion
{
static string nombreArchivo = "out.json";
public static void Main(string[] args)
{
Persona persona = new Persona()
{
Nombre = "Nauj",
Edad = 26,
Ciudad = new Ciudad()
{
Nombre = "Spain",
Poblacion = 13456766
}
};
Serializar(persona);
persona = Deserializar();
Console.WriteLine(persona.ToString());
}
public static void Serializar(Persona p)
{
string json = JsonConvert.SerializeObject(p);
File.WriteAllText(nombreArchivo, json);
}
public static Persona Deserializar()
{
string json = File.ReadAllText(nombreArchivo);
return JsonConvert.DeserializeObject<Persona>(json);
}
public class Persona
{
public string Nombre { get; set; }
public int Edad { get; set; }
public Ciudad Ciudad { get; set; }
public override string ToString()
{
StringBuilder str = new StringBuilder();
str.AppendLine("Nombre: " + Nombre);
str.AppendLine("Edad: " + Edad);
str.AppendLine("Ciudad: " + Ciudad.Nombre);
return str.ToString();
}
}
public class Ciudad
{
public string Nombre { get; set; }
public int Poblacion { get; set; }
}
}