Convertir JSON a Python — Generador de clases
Convierte JSON a dataclasses de Python o modelos Pydantic con type hints, campos snake_case y helpers from_dict/to_dict. Gratis, privado y en tu navegador.
🔒 Se ejecuta completamente en tu navegador — nada se subeDe JSON a clases Python tipadas
Trabajar con diccionarios sin procesar es rápido, hasta que una errata en el nombre de una clave provoca un KeyError tres capas más abajo. Este conversor de JSON a Python genera clases tipadas a partir de un ejemplo JSON para que tu editor, tu verificador de tipos y tus compañeros sepan exactamente qué contiene cada payload. Cada objeto se convierte en una clase con atributos anotados, los objetos anidados pasan a ser clases propias, las listas se tipan según el tipo de sus elementos y los valores que a veces faltan se tipan como opcionales. Las claves JSON se convierten en atributos snake_case, mientras que el código de serialización generado conserva las claves originales en los datos intercambiados.
La generación corre a cargo de quicktype, que combina todos los elementos de cada array antes de inferir los tipos, por lo que un campo que solo aparece en algunos elementos se captura igualmente y se marca como opcional, en lugar de descartarse en silencio.
Dataclasses, Pydantic y versiones de Python
Por defecto, la salida usa clases @dataclass de la biblioteca estándar, más funciones from_dict y to_dict que validan y convierten cada campo, así que no necesitas dependencias de terceros. Si tu proyecto ya usa Pydantic, por ejemplo para cuerpos de petición de FastAPI, configuración o validación, marca Pydantic BaseModel y las clases heredarán de BaseModel. El selector de versión de Python controla la sintaxis de tipos: 3.10+ genera anotaciones modernas como list[int] y str | None, mientras que los objetivos más antiguos recurren al módulo typing. Marca Classes only para omitir por completo los helpers de conversión.
Consejos prácticos
Usa un ejemplo que cubra los campos opcionales y contenga varios elementos por array, ya que la inferencia solo puede describir lo que ve. Pon a la clase raíz el nombre de tu dominio — Invoice se lee mejor que Root — y la descarga usará ese nombre. Después de generar, ejecuta tu formateador y tu verificador de tipos (Black, Ruff, mypy o Pyright) y afina lo que el ejemplo no podía revelar, como cadenas que en realidad son enums o números que deberían ser Decimal. Todo el análisis y la generación de código ocurren en local, así que puedes pegar con seguridad respuestas que contengan datos de clientes.
Cómo usar
- Pega el JSONPega un objeto o array JSON, o haz clic en Load sample.
- Elige un estiloSelecciona tu versión de Python y si quieres dataclasses o modelos Pydantic.
- Copia las clasesCopia el código generado o descárgalo como módulo .py.
Preguntas frecuentes
¿Genera dataclasses o modelos Pydantic?
@dataclass con type hints; marca Pydantic BaseModel para obtener modelos Pydantic en su lugar.¿Qué versiones de Python se admiten?
list[str] y la sintaxis de unión X | None.¿Se convierten los nombres de las propiedades a snake_case?
from_dict y to_dict conservan las claves JSON originales.