JSON a clases de C#

Pegue JSON y obtenga records o clases de C# limpios, listos para System.Text.Json.

Funciona en local · no se sube nada
Detect
JSON
C#

Qué hace

Pegue un documento JSON (una respuesta de API, un archivo de configuración, la carga de un webhook) y obtenga tipos de C# que puede pegar directamente en un proyecto .NET. La salida se actualiza mientras escribe.

Por qué es mejor que «Paste JSON as Classes»

  • Examina todos los elementos del array, no solo el primero. Una propiedad que falta en algunos elementos, o que es null en algunos, pasa a ser anulable (int?, string?), y un número que es 1 en un elemento y 2.5 en otro pasa a ser double.
  • Inferencia de tipos real: int, o long cuando un valor no cabe; double o decimal para fracciones; bool; Guid; DateTimeOffset para marcas de tiempo con desfase o Z, DateTime sin él, DateOnly para fechas simples. Los valores mixtos se convierten en JsonElement.
  • Las estructuras idénticas se generan una sola vez. shippingAddress y billingAddress con las mismas propiedades comparten un único tipo Address.
  • Los objetos indexados por ID ({"1": {...}, "2": {...}}) se convierten en Dictionary<string, T>.
  • Identificadores siempre válidos: user_id se convierte en UserId, los nombres que empiezan por un dígito reciben el prefijo _, las palabras clave de C# se escapan con @ y los conflictos con el nombre de la clase u otras propiedades se renombran.
  • Atributos de System.Text.Json solo donde hacen falta. «Valores predeterminados web» supone ASP.NET Core / JsonSerializerOptions.Web (camelCase); «difiere exactamente» cubre también el JsonSerializer predeterminado, que distingue mayúsculas de minúsculas.
  • C# moderno: records con init o clases con set, tipos de referencia anulables con inicializadores seguros, miembros required opcionales y espacio de nombres con ámbito de archivo.

Cómo usarlo

Pegue JSON o suelte un archivo .json, indique el nombre del tipo raíz y el espacio de nombres, y copie o descargue el archivo .cs. La línea de estado muestra la llamada JsonSerializer.Deserialize<T> que debe usar.

Privacidad

La conversión se ejecuta por completo en su navegador. Su JSON nunca se sube; la última entrada se guarda en el almacenamiento local.