Omnikit
DesarrolloArchivosDineroTodas las herramientas
Ctrl K
Herramientas de desarrolloHerramientas de archivosCalculadoras financierasTodas las herramientas
InicioHerramientas para desarrolladoresConvertidor de JSON a clases C#
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Convertidor de JSON a clases C#

desarrollo

Convierta una muestra JSON en clases o records de C# para System.Text.Json o Newtonsoft.Json

Se ejecuta en su navegador. Nada de lo que escribe se envía a ningún sitio. Comprobado el 16 de octubre de 2026.

Pegue una muestra JSON y obtenga clases o records de C# con propiedades en PascalCase y la clave JSON en un atributo JsonPropertyName o JsonProperty. Los números enteros pasan a int, a long por encima de 2,147,483,647, cualquier decimal convierte el campo en double, y un valor null o ausente pasa a ser anulable, como int?.

Esta página se ha traducido automáticamente del original en inglés. Ninguna persona ha revisado todavía la traducción, así que la versión en inglés es la que debe consultar. Leer el original en inglés

Siguiente:
  • JSON a TypeScript Genere interfaces o tipos de TypeScript a partir de una muestra JSON
  • Formateador y validador JSON Formatee, valide, minifique y ordene JSON con la posición exacta de cada error

Cómo convertir JSON en una clase C#

1

Pegue una muestra JSON, por ejemplo la respuesta de una API, en el cuadro de la izquierda.

2

Las clases C# aparecen mientras escribe, una por objeto, con propiedades en PascalCase y la clave JSON en un atributo en cada una.

3

Elija System.Text.Json o Newtonsoft.Json, y records con init si prefiere modelos inmutables.

4

Pulse Copiar, o Descargar para guardar Models.cs, y deserialice en la clase raíz.

Acerca del Convertidor de JSON a clases C#

C# lee JSON en clases tipadas, y cada propiedad necesita el tipo correcto y una forma de encontrar su clave. Este convertidor escribe esas clases a partir de una muestra, así que una respuesta de API larga se convierte en un modelo que compila con un solo pegado.

Cómo se eligen los tipos.

Valor JSON Tipo C#
"text" string
true / false bool
42 (solo números enteros) int, o long más allá de 32 bits
4.5 (si aparece algún decimal) double
null, y además un tipo int?, string?
solo null, o tipos mezclados object?
[ ... ] List<...>
{ } vacío Dictionary<string, object>
{ ... } una clase propia

Claves y nombres. Las propiedades van en PascalCase, así que user_name pasa a UserName y avatar_url a AvatarUrl. Cada propiedad lleva su clave original en un atributo, porque System.Text.Json compara los nombres distinguiendo mayúsculas salvo que se le indique lo contrario; Newtonsoft recibe [JsonProperty] en su lugar. Una propiedad que compartiría el nombre de su clase, algo que el compilador rechaza como CS0542, recibe Value añadido.

Arrays de objetos. Todos los objetos de un array se fusionan en una clase, así que una clave que aparece solo en algunos sigue estando, como anulable, para que su ausencia se lea como null y no como 0 o false. Dos objetos con exactamente las mismas claves y tipos comparten una clase.

Opciones. Los records con init dan modelos inmutables que se comparan por valor. La clase raíz se llama Root salvo que le ponga otro nombre. Cuando el propio JSON es un array o un valor suelto, un comentario indica en qué tipo deserializar, como List.

Cada resultado se comprobó leyendo de nuevo el C# y cotejando 9 muestras con él según las reglas de los serializadores. Nada de lo que pegue sale del navegador.

Preguntas frecuentes

¿Cómo convierto JSON en una clase C#?

Pegue una muestra JSON en el convertidor y las clases C# aparecen al lado, una por objeto, con un atributo JsonPropertyName en cada propiedad. Cópielas en su proyecto y lea el JSON con JsonSerializer.Deserialize<Root>(json), o con JsonConvert.DeserializeObject<Root>(json) cuando elige Newtonsoft.

¿Por qué cada propiedad tiene un atributo JsonPropertyName?

System.Text.Json compara por defecto los nombres de propiedad distinguiendo mayúsculas, así que una propiedad llamada UserName nunca recibiría la clave user_name. El atributo nombra la clave exacta, lo que mantiene los nombres de C# en PascalCase y sigue leyendo el JSON sin opciones del serializador ni política de nombres.

¿Cuándo es anulable una propiedad, como int? o string?

Una propiedad es anulable cuando la muestra tiene null en ella, o cuando algunos objetos de un array omiten su clave. Sin el signo de interrogación, un número ausente se leería en silencio como 0 y un indicador ausente como false, así que el tipo anulable distingue ausente de cero.

¿Debo usar clases o records?

Los records con accesores init sirven para modelos que solo lee, porque sus propiedades no pueden cambiar tras la deserialización y dos records con los mismos valores son iguales. Las clases con set sirven para modelos que rellena o edita. Ambos funcionan con System.Text.Json desde .NET 5 y con Newtonsoft.Json.

¿Qué tipos reciben los números en C#?

Los números enteros pasan a int, o a long cuando un valor supera 2,147,483,647, y un campo pasa a double en cuanto algún valor de la muestra tiene parte decimal. Los valores de tipos distintos, como un número en un elemento y texto en otro, pasan a object?, que conserva el valor JSON tal cual.

¿Se sube mi JSON?

No. La conversión se hace en su navegador sin ninguna petición a un servidor, y el JSON no se guarda, así que las respuestas de API con tokens o datos personales se quedan en su dispositivo. Cierre la pestaña y no queda nada.

Fuentes

  • Microsoft Learn, System.Text.Json: customize property namesJsonPropertyName, and case-sensitive matching by default
  • Newtonsoft.Json documentation, JsonPropertyAttribute nameJsonProperty("key") on a property
  • Microsoft Learn, .NET naming guidelinesPascalCase types and properties
  • Microsoft Learn, compiler error CS0542A member cannot have the same name as its enclosing type

Última verificación: 16 de octubre de 2026.

Los tipos y las normas cambian; consulte la fuente antes de fiarse de una cifra.

¿Sigue sin resolverlo? Pregunte sobre Convertidor de JSON a clases C# y cualquiera que lo sepa puede responder. No se necesita cuenta.

Herramientas relacionadas

Todas las herramientas para desarrolladores
Codificar y decodificar Base64Texto y archivos a Base64 y de vuelta, con modo seguro para URL y vista previa de imágenesConversor de timestamp UnixDe timestamps Unix a fechas y de fechas a timestamps, en cualquier zona horariaJSON a TypeScriptGenere interfaces o tipos de TypeScript a partir de una muestra JSONConvertir CSV a JSONConvierta CSV a JSON y JSON a CSV, con una vista previa en tablaConvertir YAML a JSONConvierta YAML a JSON y JSON a YAML, con los anclajes resueltosCodificador y decodificador de URLCodifique o decodifique texto y URL con codificación porcentual y vea cada parte de un enlaceConversor de coloresHEX, RGB, HSL, HWB, OKLCH y CMYK en ambos sentidos, con comprobación de contrasteConversor de bases numéricasBinario, octal, decimal, hexadecimal y cualquier base hasta 36, exacto a cualquier tamaño, con complemento a dos
¿Le ha resultado útil esta herramienta?
Omnikit

Tareas pequeñas, hechas en su navegador. Gratis, rápido y privado. Los archivos nunca se suben.

Archivos

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Desarrollo

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Dinero

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuíasPreguntasAcerca deCómo verificamosBiblioteca de leyes (beta)PrivacidadCondicionesDivulgaciónContactoMore: Exam practice (UGC NET Paper 1)Se ejecuta en su navegador. No se sube nada. © 2026 Omnikit (theomnikit.com)