UTILS.
100% en el navegador
💠

JSON a clases de C#

Genera clases de modelo de C# desde una muestra JSON para System.Text.Json o Newtonsoft.Json, con propiedades PascalCase y tipos de valor anulables.

salida

Acerca de esta herramienta

La herramienta JSON a clases de C# convierte una muestra JSON pegada en clases o records de modelo de C#, para que los desarrolladores de .NET puedan construir DTOs a partir de una respuesta de API en segundos. Analiza el JSON, infiere tipos de C# de forma recursiva y emite un tipo por objeto: las cadenas pasan a string, las cadenas de fecha-hora ISO a DateTime, los enteros a int o long, otros números a double, los booleanos a bool, los arrays a List<T>, y los objetos anidados a sus propias clases en PascalCase declaradas antes que los padres que las referencian.

Todo el análisis y la generación de código ocurren localmente en tu navegador con JSON.parse y JavaScript plano: nada se sube. Las propiedades se emiten como auto-propiedades PascalCase, public T Prop { get; set; }. Cuando la clave JSON difiere del nombre de propiedad PascalCase la herramienta añade [JsonPropertyName("originalKey")] para System.Text.Json o [JsonProperty("originalKey")] para Newtonsoft, y solo se incluyen las directivas using requeridas.

Las propiedades de tipo de valor que pueden ser null en alguna muestra se hacen anulables (int?, double?, bool?, DateTime?), mientras que los tipos de referencia como string y List ya son anulables. El interruptor de serializador alterna el estilo de atributo y using entre System.Text.Json (por defecto) y Newtonsoft.Json; el interruptor de forma emite clases (por defecto) o records. Copia el código o descárgalo como archivo .cs.

Preguntas frecuentes

¿Cómo se mapean los tipos JSON a C#?
string a string, una fecha-hora ISO a DateTime, entero a int (long más allá del rango de int), número no entero a double, booleano a bool, array a List<T>, y objeto a una clase o record con nombre. Los tipos de valor anulables reciben el modificador final ?.
¿System.Text.Json o Newtonsoft?
El interruptor de serializador elige cualquiera. Controla el atributo usado cuando el nombre de una propiedad difiere de la clave JSON: [JsonPropertyName("key")] para System.Text.Json o [JsonProperty("key")] para Newtonsoft, y la directiva using correspondiente.
¿Puedo generar records en vez de clases?
Sí. El interruptor de forma alterna entre public class (por defecto) y public record, manteniendo las mismas auto-propiedades PascalCase y atributos JSON para que elijas el estilo que prefiera tu base de código.
¿Se procesa el JSON de forma privada?
Sí. Todo se ejecuta en tu navegador con JSON.parse y JavaScript plano; la muestra nunca se sube, así que pegar payloads de API reales es seguro.

Más herramientas