En este articulo vamos a explicarles un poco de como convertir archivos Json en clases en Visual Studio.
Algunas veces recibimos archivos Json de algunos componentes o servicios externos a nuestra aplicación, en C# debemos mapear esto a clases y debemos que crear la estructura de ese archivo Json dentro de una clase para poder hacer el mapeo de los datos por ejemplo aquí tenemos una aplicación de escritorio:
Y aquí tenemos un ejemplo de un archivo Json:
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": [ "Radiation resistance", "Turning tiny", "Radiation blast" ]
}
Este archivo Json tiene que ver un poco con el tema de un superhéroe por ejemplo : vemos que dice name, identity y powers, lo que tendríamos que hacer es crear una clase y colocarle una de estas propiedades dependiendo el tipo, todo eso lo vamos haciendo de manera manual.
Visual Studio tiene una opción que nos permite crear automáticamente una clase a partir de estos archivos Json, podemos simplemente copiar este archivo Json por ejemplo; vamos a la clase donde la queramos generar y utilizamos la opción Edit -> Paste Special -> Paste JSON as Classes
Y obtendremos la siguiente clase generada
public class Rootobject
{
public string name { get; set; }
public int age { get; set; }
public string secretIdentity { get; set; }
public string[] powers { get; set; }
}
vemos cómo nos transforma ese Json en una clase, en este caso lo único que tendríamos que hacer es cambiarle el nombre a la clase como tal y ya pudiéramos por ejemplo también cambiarlo de camel case a pascal case ya que en C# esta nomenclatura se ve muy bien y es la buena práctica.
public class Superhero
{
public string Name { get; set; }
public int Age { get; set; }
public string SecretIdentity { get; set; }
public string[] Powers { get; set; }
}
Mas informacion de como convertir archivos JSON en clases en visual estudio ver el video:
Recuerda siempre seguir aprendiendo con mis cursos en https://mteheran.dev/cursos
I also created a Source Generator to do this
https://github.com/feiyun0112/MyIO.ParseJsonAsClass.SourceGenerator