Skip to main content
CheckTown
Convertidores

JSON a C#: genera clases .NET desde respuestas API

Publicado 5 min de lectura
En este artículo

¿Por qué generar clases C# desde JSON?

Al trabajar con API REST en .NET o Unity, necesitas clases C# fuertemente tipadas para deserializar respuestas JSON. Escribir estas clases manualmente es tedioso y propenso a errores, especialmente para payloads API profundamente anidados. Un generador JSON a C# analiza la estructura JSON y produce automáticamente definiciones de clases listas para usar.

Esto es particularmente valioso durante la creación rápida de prototipos. Pegas una respuesta API de ejemplo, obtienes clases C# perfectamente estructuradas y comienzas inmediatamente a trabajar con datos tipados en lugar de objetos dinámicos.

Modos de salida y opciones de serialización

El generador soporta múltiples formatos de salida para coincidir con el estilo de codificación y la versión .NET de tu proyecto. Cada modo produce C# idiomático que compila sin modificaciones.

  • Class vs Record — clases mutables tradicionales para proyectos .NET antiguos, o records C# 9+ para objetos de transferencia de datos inmutables con igualdad de valor incorporada
  • System.Text.Json — el serializador moderno de alto rendimiento integrado en .NET Core 3.1+ que usa atributos [JsonPropertyName]
  • Newtonsoft.Json — la ampliamente utilizada biblioteca Json.NET que usa atributos [JsonProperty], aún dominante en .NET Framework heredado y proyectos Unity

Pruébalo gratis — sin registro

Convertir JSON a C# →

Convenciones de nomenclatura C# y anotaciones

C# sigue convenciones de nomenclatura estrictas que difieren del típico camelCase o snake_case de JSON. El generador aplica automáticamente estas transformaciones mientras preserva los nombres de propiedad JSON originales a través de atributos de serialización.

  • Propiedades PascalCase — todos los nombres de propiedad generados se convierten a PascalCase (ej., user_name se convierte en UserName) siguiendo las directrices de nomenclatura .NET de Microsoft
  • Patrones de anotación — cada propiedad incluye el atributo de serialización apropiado ([JsonPropertyName] o [JsonProperty]) que mapea la propiedad PascalCase al nombre de clave JSON original
  • Inferencia de tipos — el generador infiere tipos C# de valores JSON: las cadenas se convierten en string, los números en int o double, los booleanos en bool

Preguntas frecuentes

¿Cómo maneja el generador los tipos de referencia anulables?

Cuando un valor JSON es null, el generador produce un tipo de referencia anulable (string? en lugar de string). Esto sigue las convenciones de tipos de referencia anulables de C# 8+ y te ayuda a detectar potenciales excepciones de referencia nula en tiempo de compilación.

¿Debo usar List<T> o arrays para los arrays JSON?

El generador usa List<T> por defecto porque ofrece funcionalidad más rica (Add, Remove, Contains) y es el tipo de colección más común en bases de código C#. Puedes cambiar manualmente el tipo generado si es necesario.

¿Puedo generar records en lugar de clases?

Sí. El modo record genera tipos record C# 9+ con propiedades init-only. Los records son ideales para objetos de transferencia de datos porque proporcionan inmutabilidad, igualdad basada en valores y sintaxis concisa.

Herramientas relacionadas