Convertidor de JSON a clases de Python
Pega JSON y obtén clases de Python: dataclass, Pydantic v2 o TypedDict. Tipado Optional, alias camelCase, clases anidadas. 100% en el navegador, gratis.
¿Qué es la conversión de JSON a Python?
La conversión de JSON a Python transforma una muestra JSON en clases de Python listas para usar — un dataclass de la biblioteca estándar, un modelo de Pydantic v2 o un TypedDict — para que nunca escribas a mano las definiciones de campos de una respuesta de API o un archivo de configuración. Este generador de clases de Python infiere los tipos correctos (int, float, str, bool, Optional), convierte los objetos anidados en clases con nombre y añade alias de Pydantic para las claves camelCase, todo al 100% en tu navegador.
Ejemplos
Respuesta de API → dataclass
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} from dataclasses import dataclass
from typing import List
@dataclass
class Root:
id: int
name: str
email: str
active: bool
roles: List[str]
Un payload REST típico se convierte en un @dataclass listo para usar. Los números enteros infieren int, los decimales infieren float y los arrays se convierten en List[str].
Objeto anidado (clase hija primero)
{"repo":"pydantic","owner":{"login":"samuelcolvin","id":100}} from dataclasses import dataclass
@dataclass
class Owner:
login: str
id: int
@dataclass
class Root:
repo: str
owner: Owner
Los objetos anidados se convierten en clases separadas y con nombre. La clase hija (Owner) se emite antes que la padre para que el código se ejecute sin from __future__ import annotations.
camelCase → alias de Pydantic v2
{"login":"octocat","publicRepos":15,"createdAt":"2011-01-25"} from pydantic import BaseModel, ConfigDict, Field
class Root(BaseModel):
model_config = ConfigDict(populate_by_name=True)
login: str
public_repos: int = Field(alias="publicRepos")
created_at: str = Field(alias="createdAt")
En modo Pydantic, los campos son snake_case con Field(alias=...) que remite a la clave JSON original, y populate_by_name te permite construir el modelo de cualquiera de las dos formas, para que la validación haga ida y vuelta con datos reales de API.
Array de objetos → TypedDict (clave opcional)
{"users":[{"id":1,"nick":"x"},{"id":2}]} from typing import List, Optional, TypedDict
class User(TypedDict):
id: int
nick: Optional[str]
class Root(TypedDict):
users: List[User]
Los arrays de objetos se fusionan en un único tipo de elemento. Una clave ausente en algunos elementos (nick) se convierte en Optional. TypedDict describe la forma de un dict simple sin ningún coste en tiempo de ejecución.
Cómo convertir JSON a Python
- 1
Pega tu JSON
Suelta un objeto JSON, un array o una respuesta de API en el campo de entrada. La conversión empieza al instante.
- 2
Elige dataclass, Pydantic o TypedDict
Cambia el estilo de salida para adaptarlo a tu proyecto y renombra la clase raíz desde el Root predeterminado.
- 3
Copia o descarga
Toma el Python generado con un clic y pégalo directamente en tu código.
Common Use Cases
- Clientes de API tipados
- Convierte una respuesta de ejemplo REST o GraphQL en modelos de Pydantic o dataclasses para un cliente requests o httpx sin escribir a mano las definiciones de campos.
- Análisis de configuración y fixtures
- Genera modelos para archivos de configuración JSON, fixtures de prueba o payloads de webhooks que necesitas cargar y validar.
- Prototipado rápido y sugerencias de tipo
- Pega un payload desconocido para ver al instante su forma como tipos de Python — una forma rápida de explorar una nueva API o añadir sugerencias TypedDict a código heredado basado en dicts.
Cómo funciona la conversión
- Inferencia estructural
- Cada objeto se convierte en una clase con nombre; las formas idénticas se deduplican para que obtengas una sola clase, no copias. Los arrays de objetos se fusionan clave a clave, y las claves ausentes en algunos elementos se convierten en Optional.
- Tres destinos idiomáticos
- dataclass mantiene cero dependencias y conserva las claves válidas para Root(**data); Pydantic v2 añade alias de Field más populate_by_name para una validación real; TypedDict describe un dict simple para los verificadores de tipos estáticos, usando sintaxis funcional cuando una clave no es un identificador.
- Tipado correcto y con pocas dependencias
- Los números enteros se asignan a int (precisión arbitraria, sin desbordamiento), los decimales y exponentes a float, y los campos que solo son null a Optional[Any]. Las importaciones de typing (Optional, List, Any) se añaden solo cuando realmente se usan.
- 100% del lado del cliente
- El análisis y la generación se ejecutan en tu navegador sin llamadas de red, por lo que tus datos siguen siendo privados.
Consejos para modelos de Python limpios
- Ajusta el modo a la tarea
- Usa dataclass para contenedores de datos internos, Pydantic v2 cuando validas o analizas entradas no confiables, y TypedDict cuando solo necesitas sugerencias de tipo estáticas sobre dicts existentes.
- Pega una muestra representativa
- Los campos se marcan como Optional solo cuando una muestra los omite, y los valores que solo son null recurren a Any. Un ejemplo completo y con datos produce los tipos más precisos.
- Nombra tu clase raíz
- Define un nombre raíz significativo (User, ApiResponse) en lugar del Root predeterminado para un código legible e importable.
Preguntas frecuentes
¿Cómo convierto JSON en una clase de Python?
¿Cuál es la diferencia entre la salida dataclass, Pydantic y TypedDict?
¿Cómo genero un modelo de Pydantic a partir de JSON?
¿Cómo gestiona la salida dataclass las claves camelCase?
¿Cómo se tipan los campos opcionales y null?
¿A qué tipo de Python se asigna cada valor JSON?
¿Gestiona objetos anidados y arrays de objetos?
¿Cómo se gestionan las palabras clave de Python y las claves que no son identificadores?
¿Cómo uso el dataclass generado para analizar JSON?
¿Mis datos JSON son privados y seguros?
¿La herramienta es gratis? ¿Necesito una cuenta?
Herramientas relacionadas
Ver todas las herramientas →Decodificador y Codificador Base64
Codificación y Formato
Decodifica y codifica Base64 online de forma gratuita. Conversión en tiempo real con soporte completo de UTF-8 y emojis. 100% privado — funciona en tu navegador. Sin registro.
Conversor de Base64 a Imagen
Codificación y Formato
Decodifica una cadena Base64 o data URI de vuelta a una imagen en tu navegador. Previsualiza, lee dimensiones y MIME, luego descarga como PNG, JPG, GIF, SVG. Sin subir.
Convertidor de CSV a JSON
Codificación y Formato
Convierte CSV a JSON en tu navegador. RFC 4180, inferencia de tipos, fila de cabecera, seguro para big-int. 100% privado, sin carga.
Conversor de .env a JSON
Codificación y Formato
Pega un archivo .env y obtén JSON al instante. Tus contraseñas, claves API y tokens nunca salen del navegador: 100% privado, sin subidas, gratis.
Decodificador de entidades HTML gratuito — Desescapar HTML
Codificación y Formato
Decodifica entidades HTML y desescapa HTML online: gratis, sin registro, 100 % en tu navegador. Convierte referencias nombradas, decimales y hex de vuelta en caracteres; nunca se sube.
Codificador de entidades HTML gratuito — Escapar HTML
Codificación y Formato
Codifica entidades HTML y escapa caracteres especiales (< > & " ') online: gratis, sin registro, 100 % en tu navegador. Salida con nombre, decimal o hex; nunca se sube.