Saltar al contenido

JSON a clase C#

Convierte un ejemplo JSON en clases C# listas para usar.

Entrada
Salida

JSON a clase C#

Pega un objeto JSON o un array de objetos JSON y esta herramienta infiere la estructura y genera las clases C# correspondientes. Está diseñada para la tarea cotidiana de convertir una respuesta de API, un archivo de configuración o un payload de ejemplo en modelos fuertemente tipados sin escribirlos manualmente.

Las opciones controlan cómo se vea el código generado. Elige atributos para System.Text.Json ([JsonPropertyName]), Newtonsoft.Json ([JsonProperty]) o ninguno — los atributos se añaden automáticamente cuando el cambio a PascalCase modifica un nombre de propiedad, así que la clave JSON original nunca se pierde. Selecciona propiedades o campos, activa o desactiva tipos de referencia anulábles, genera un record en lugar de una class y elige List<T> o T[] para arrays. Los objetos anidados se convierten en sus propias clases nombradas según la propiedad que las contiene, y una declaración de namespace envuelve todo cuando proporcionas una.

La herramienta combina las estructuras de cada elemento cuando pegas un array, así que una clave que solo está presente en algunos elementos se convierte en una propiedad opcional y anulable en lugar de desaparecer silenciosamente. Los números permanecen como números enteros (int, ampliándose a long para valores más grandes) a menos que un punto decimal fuerza double, y un valor que es siempre null se convierte en un objeto anulable. Los nombres de clase y propiedad se sanitizan y desduplican automáticamente, así que las claves JSON inválidas o repetidas nunca producen C# roto.

Todo se ejecuta localmente en tu navegador — tu JSON nunca se carga ni se envía a un servidor, lo que importa cuando la muestra viene de una API privada o contiene datos reales de clientes. Copia las clases generadas, descárgalas como archivo .txt o envía el resultado de vuelta a la entrada para refinarlo aún más.

Preguntas frecuentes

¿Cómo decide entre int, long y double?
Los números enteros se convierten en int, o en long cuando exceden el rango de 32 bits. Cualquier número con un punto decimal o que no concuerde con un número entero en otro lugar de un array se convierte en double.
¿Qué sucede con una propiedad que falta en algunos elementos del array?
Se genera como una propiedad anulable. Con tipos de referencia anulábles activados eso añade una "?"; lo mismo se aplica a un valor que es siempre null.
¿Puede mantener la clave JSON original cuando cambia el nombre de una propiedad?
Sí. Cada vez que el cambio a PascalCase o la sanitización cambia un nombre de propiedad, la clave original se preserva en un atributo [JsonPropertyName] o [JsonProperty], dependiendo del estilo de atributo que elijas.
¿Genera clases anidadas para objetos anidados?
Sí. Cada objeto anidado obtiene su propia clase nombrada según la propiedad que la contiene, y los arrays de objetos generan una clase nombrada según la forma singular de esa propiedad.
¿Se carga mi JSON en algún lugar?
No. La conversión se ejecuta completamente en tu navegador — tu JSON nunca abandona tu dispositivo.