Convertidor de JSON a C#

Genera clases C# a partir de una muestra JSON directamente en tu navegador.

Esta herramienta se ejecuta completamente en tu navegador. Tus archivos nunca se suben a un servidor.

using System.Collections.Generic;

public class Root
{
    public string Name { get; set; }
    public int Age { get; set; }
    public bool Active { get; set; }
    public List<string> Tags { get; set; }
    public Address Address { get; set; }
}

public class Address
{
    public string Street { get; set; }
    public string Zip { get; set; }
}

Qué hace este convertidor

Lee un valor JSON y genera clases C# equivalentes: una clase por cada forma de objeto encontrada en la muestra, cada una con propiedades públicas auto-implementadas.

Cómo usarlo

Pega un objeto, lista o valor primitivo JSON en el editor. Aparece de inmediato una clase `Root`, además de una clase adicional por cada forma de objeto anidada; una raíz que no es un objeto se envuelve en una clase `Root` con una única propiedad `Value`.

Ejemplo

Un objeto con una cadena `name` y un objeto anidado `address` produce una clase `Root` con `public string Name { get; set; }`, junto con una clase `Address` separada para la forma anidada.

Correspondencia de tipos y nomenclatura

Las cadenas se convierten en `string`, los enteros en `int`, los decimales en `double`, los booleanos en `bool` y las listas en `List<ElementType>` (con la directiva `using System.Collections.Generic` añadida automáticamente cuando hace falta). Los nombres de propiedad se convierten a PascalCase a partir de la clave JSON, siguiendo la convención de C# — así, una clave `first_name` produce una propiedad `FirstName`.

Objetos anidados y listas

Cada objeto anidado obtiene su propia clase, generada a partir de su clave. El orden de las clases en la salida no importa en C#, ya que las clases del mismo archivo pueden referenciarse entre sí sin importar el orden de declaración.

Limitaciones

Como los nombres de propiedad se convierten a PascalCase y ya no coinciden con el texto original de la clave JSON, deserializar JSON directamente en estas clases con System.Text.Json o Newtonsoft.Json requiere añadir a mano un atributo [JsonPropertyName]/[JsonProperty] para cualquier clave que no fuera ya PascalCase. Las clases generadas describen solo la muestra JSON proporcionada.

Privacidad

El análisis y la generación de código se ejecutan localmente en tu navegador. El JSON que pegas y el C# generado nunca se suben.

Preguntas Frecuentes

¿Estas clases deserializarán mi JSON automáticamente?
No siempre — los nombres de propiedad se convierten a PascalCase según la convención de C#, así que una clave JSON como first_name necesita un atributo [JsonPropertyName("first_name")] para volver a coincidir durante la deserialización.
¿Por qué PascalCase en lugar de la clave JSON original?
Sigue la convención estándar de nomenclatura de C# para propiedades públicas, que es lo que la mayoría de desarrolladores C# esperan ver y usar en su propio código.
¿Se envía mi JSON a un servidor?
No — el análisis y la generación de C# se realizan completamente en tu navegador.