Generador de Modelos Pydantic desde JSON
Genera clases de modelo Pydantic v2 a partir de una muestra JSON al instante en tu navegador. Tu JSON se queda en tu dispositivo.
Tu JSON se analiza y se convierte en modelos de Pydantic por completo en tu navegador, así que se queda en tu dispositivo y nada se sube a un servidor.
¿Necesitas tipos de Go, Rust o TypeScript? Prueba JSON a Código.
Acerca de JSON a Pydantic
Este generador de json a pydantic convierte un objeto o arreglo JSON de muestra en clases de modelo Pydantic v2 listas para usar en segundos. Pega una respuesta de API real e infiere el tipo de cada campo, str, int, float y bool, marca los campos anulables como Optional, unifica los arreglos en tipos list[...] y promueve cada objeto anidado a su propio BaseModel referenciado por nombre. Las claves que no son identificadores válidos de Python se conservan mediante Field(alias=...) para que el modelo aún analice tu payload original. Está hecho para personas desarrolladoras de Python y FastAPI que prefieren generar modelos pydantic desde json en lugar de escribirlos a mano mientras conectan un cliente tipado. Todo se ejecuta localmente en tu navegador, así que el JSON que pegas se procesa en tu dispositivo y nada se sube a un servidor.
Características
- Genera clases BaseModel de Pydantic v2 desde cualquier objeto o arreglo JSON
- Infiere str, int, float y bool a partir de tus valores de muestra
- Marca los campos anulables y que a veces faltan como Optional[...]
- Promueve los objetos anidados a sus propias clases BaseModel nombradas
- Unifica los arreglos en tipos list[...]; los arreglos vacíos se vuelven list[Any]
- Conserva las claves de Python inválidas mediante Field(alias=...) para que el análisis siga funcionando
- Emite imports limpios para BaseModel, Field, Optional y Any
- Copia el resultado o descárgalo como un archivo .py
Cómo usar JSON a Pydantic
- Pega tu objeto o arreglo JSON en el cuadro de entrada.
- Establece el nombre del modelo raíz para que coincida con tu esquema, o déjalo como Model.
- Revisa las clases de Pydantic generadas en el panel de salida.
- Copia el resultado o descárgalo como un archivo .py.
Ejemplo
Entrada
{ "id": 1, "name": "Ada", "address": { "city": "London" } }
Salida
from pydantic import BaseModel
class Address(BaseModel):
city: str
class Model(BaseModel):
id: int
name: str
address: Address
Un objeto anidado se convierte en su propio BaseModel, con la clase raíz al final.
Errores comunes y solución de problemas
- La salida muestra un error de Inválido con una línea y columna. — El JSON tiene un problema de sintaxis como una coma final, comillas simples o una clave sin comillas. Corrígelo en la línea y columna reportadas y los modelos se regenerarán.
- Un campo salió como Optional[Any] en lugar de un tipo concreto. — Todos los valores de muestra de esa clave eran null, así que no se pudo inferir un tipo concreto. Proporciona una muestra con un valor real para ese campo.
- Un campo usa Field(alias=...) con un atributo renombrado. — Esa clave no es un identificador válido de Python o es una palabra reservada, así que se expone bajo un nombre de atributo seguro conservando la clave original como alias.
- Un campo de lista salió como list[Any]. — El arreglo en tu muestra estaba vacío, así que no se pudo inferir un tipo de elemento. Incluye al menos un elemento representativo para obtener una lista tipada.
Preguntas frecuentes
- ¿Genera modelos de Pydantic v2?
- Sí. La salida apunta a la sintaxis de Pydantic v2: cada modelo es una clase que hereda de BaseModel, con campos anotados y Field(alias=...) cuando una clave JSON no es un identificador válido de Python.
- ¿Cómo se manejan los objetos anidados?
- Cada objeto anidado se convierte en su propia clase BaseModel, nombrada en PascalCase a partir de la clave que la contiene, y el padre la referencia por tipo. Las clases se emiten en orden de dependencia con el modelo raíz al final.
- ¿Cómo mapea los tipos de JSON a los tipos de Python?
- Las cadenas se vuelven str, los números enteros int, los decimales float, los booleanos bool, null produce Optional, los arreglos se vuelven list[...] con un tipo de elemento unificado, y los objetos se vuelven BaseModels anidados.
- ¿Qué pasa con las claves que no son nombres válidos de Python?
- Una clave como first-name o 2fa, o una palabra reservada como class, se expone bajo un atributo seguro en snake_case y la clave original se preserva con Field(alias="...") para que el modelo aún analice tu payload.
- ¿Cómo se convierten los arreglos y los arreglos vacíos?
- Los arreglos se vuelven list[...] usando el tipo unificado de sus elementos, incluido un BaseModel anidado para arreglos de objetos. Un arreglo vacío no tiene tipo de elemento que inferir, así que se vuelve list[Any].
- ¿Se envía mi JSON a algún lugar cuando genero modelos de Pydantic?
- No. La conversión de JSON a Pydantic se ejecuta por completo en tu navegador, así que los datos que pegas se procesan localmente y nunca salen de tu dispositivo.
Herramientas relacionadas
- JSON a TypeScript — Genera interfaces de TypeScript a partir de una muestra JSON.
- JSON a código — Genera tipos de Go, Rust, Python, Java, Kotlin, C# y TypeScript a partir de JSON.
- JSON Schema — Genera un JSON Schema desde una muestra o valida JSON con Ajv.
- Formateador de JSON — Embellece, minimiza y valida JSON con la ubicación de los errores.
- JSON a Zod — Genera un esquema de Zod a partir de una muestra JSON.
- Visor de JSON — Visor de texto y árbol plegable con expandir/contraer y rutas de nodos.
Todas las herramientas de ArrayKit