- 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; }
}
}