Usa el Convertir JSON a Clases C# gratuito abajo: tus datos nunca salen de tu navegador, todo el trabajo ocurre en tu dispositivo y no se sube a ningún servidor.
De JSON a Clases C# en un Solo Paso
Todo desarrollador .NET conoce esta tarea. Una API devuelve JSON y, antes de usar los datos, hacen falta clases con las propiedades y los tipos correctos. Hacerlo a mano significa leer el documento lÃnea por lÃnea, decidir cada tipo y escribir propiedad tras propiedad. Es un trabajo aburrido, y el aburrimiento produce errores: una propiedad mal escrita, un número declarado como int cuando a veces llega como decimal, un objeto anidado tratado como texto. Esta herramienta hace la parte mecánica y te deja a ti las decisiones.
Pega el JSON, nombra la clase principal y pulsa Convertir. El resultado es un conjunto de clases C# con propiedades automáticas (get y set). Los textos se convierten en string, los enteros en int, los decimales en double, los booleanos en bool y los arreglos en List del tipo del elemento. Los objetos anidados se convierten en sus propias clases.
Nombres de Propiedad al Estilo C#
La convención de C# usa PascalCase para las propiedades, y la herramienta la sigue. Una clave como zipCode se convierte en ZipCode. Una clave como zip_code también se convierte en ZipCode. Una clave como orderId se convierte en OrderId. Asà el código generado parece escrito por un desarrollador .NET, y encaja con el comportamiento habitual de las bibliotecas de JSON más usadas.
Hay un detalle que conviene conocer. System.Text.Json y Newtonsoft.Json suelen trabajar sin distinguir mayúsculas y minúsculas en muchos casos, pero si tu proyecto usa una configuración estricta, una propiedad cuyo nombre difiere de la clave JSON necesita un atributo JsonPropertyName o JsonProperty. Como las propiedades generadas son la forma PascalCase de las claves, añadir ese atributo es un cambio de una lÃnea por propiedad cuando hace falta. Revisa la configuración de tu serializador una vez y sabrás si necesitas esos atributos.
Tipos, Listas y Valores Nulos
Las reglas de tipos son conservadoras a propósito. Un número entero se convierte en int, porque eso es lo que son la mayorÃa de los enteros del JSON en la práctica. Un decimal se convierte en double. Un texto sigue siendo texto aunque contenga dÃgitos, ya que la herramienta no puede saber si “1024” pretende ser texto o número, y tratar texto como número podrÃa corromper datos. Si tu API envÃa identificadores numéricos como texto, mantenlos como texto y conviértelos donde los uses.
Los arreglos se convierten en tipos List. Un arreglo de textos es List de string. Un arreglo de objetos es una lista de una clase nueva, con el nombre en singular a partir del campo, asà que orders produce la clase Order. Un arreglo vacÃo se convierte en una lista de object, porque una muestra vacÃa no dice nada sobre lo que el arreglo contendrá después. Un campo con valor nulo se convierte en object por la misma razón. Esos dos casos son los únicos donde debes aplicar tu propio conocimiento: consulta la documentación de la API, decide el tipo real y edita esos puntos.
Uso en un Proyecto Real
Copia las clases generadas en la carpeta de modelos de tu proyecto. El resultado ya incluye el using para colecciones genéricas, asà que List funciona sin más importaciones. Después, conecta las clases con tu código HTTP. Con System.Text.Json, deserializa con JsonSerializer.Deserialize del tipo principal. Con Newtonsoft.Json, usa JsonConvert.DeserializeObject. En ambos casos, prueba con una respuesta real antes de confiar en el modelo.
Prueba con más de una respuesta. Las APIs varÃan. Un usuario puede no tener pedidos y otro puede tener diez. Un producto puede tener descuento y otro no. Un campo presente en tu primera muestra puede faltar en la segunda, y un campo nulo en la primera puede tener valor en la segunda. Convierte la respuesta más completa que encuentres y luego comprueba el modelo con una segunda respuesta distinta para detectar las variaciones.
Cuando encuentres una variación, corrige el modelo, no el JSON. Si un precio llega a veces como texto, cambia la propiedad a string y conviértela en tu código. Si un identificador a veces supera el rango de int, cámbialo a long. Si un campo falta a veces, haz la propiedad anulable. Son decisiones pequeñas y deliberadas, mucho más fáciles de tomar cuando la mayor parte del modelo ya está escrita.
Datos Anidados Bien Resueltos
Los objetos anidados son donde los modelos escritos a mano fallan con más frecuencia. Es tentador aplanar una dirección dentro de la clase de usuario, o guardar un objeto anidado como texto sin procesar. La herramienta no hace ninguna de las dos cosas. Cada objeto anidado recibe su propia clase, y cada arreglo de objetos recibe una lista de su propia clase. El resultado se lee como un modelo de dominio correcto: un usuario tiene una dirección, un usuario tiene una lista de pedidos, y cada pedido tiene sus propios campos.
Si dos campos crearÃan clases con el mismo nombre, la herramienta numera la segunda. Asà el resultado compila en lugar de fallar con un error de tipo duplicado. Cambia el nombre de la clase numerada por algo con significado cuando veas qué representa. Un nombre como Address2 es una señal para ti, no una respuesta final.
Privacidad
La conversión se ejecuta por completo en tu navegador. Nada se sube ni se guarda. Puedes convertir respuestas con datos reales de clientes, aunque conviene mantener tokens fuera del texto pegado. La herramienta es gratuita y no necesita cuenta.
Herramientas relacionadas
- JSON to C# Classes (English version)
- Convertir JSON a Structs de Rust
- Convertir JSON a Data Classes de Kotlin
