- Curso
- Serialización de datos
- JavaScriptSerializer: Serializar objetos
JavaScriptSerializer: Serializar objetos
Última actualización:
23/08/2020
⁃
Dificultad:
Intermedio
Crea un programa en C# que serializar y deserializar objetos en formato JSON. Para ello puede utilizar la clase JavaScriptSerializer
incluida en el espacio de nombres System.Web.Extensions
.
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 JavaScriptSerializer
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 System.Web.Script.Serialization;
-
- public class JSONJavaScriptSerializer
- {
- 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());
- Console.ReadLine();
- }
-
- public static void Serializar(Persona p)
- {
- JavaScriptSerializer js = new JavaScriptSerializer();
- string json = js.Serialize(p);
-
- File.WriteAllText(nombreArchivo, json);
- }
-
- public static Persona Deserializar()
- {
- JavaScriptSerializer js = new JavaScriptSerializer();
- string json = File.ReadAllText(nombreArchivo);
- Persona persona = js.Deserialize<Persona>(json);
-
- return persona;
- }
-
- 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; }
- }
- }