Convertidor de JSON a Python
Genera dataclasses de Python 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.
from __future__ import annotations
from dataclasses import dataclass
from typing import Any, List
@dataclass
class Root:
name: str
age: int
active: bool
tags: List[str]
address: Address
@dataclass
class Address:
street: str
zip: strQué hace este convertidor
Lee un valor JSON y genera dataclasses de Python equivalentes: un `@dataclass` por cada forma de objeto encontrada en la muestra, con cada campo anotado según el valor que contiene.
Cómo usarlo
Pega un objeto, lista o valor primitivo JSON en el editor. Aparece de inmediato una dataclass `Root` (o un alias de tipo, si la raíz no es un objeto), además de una dataclass adicional por cada forma de objeto anidada.
Ejemplo
Un objeto con una cadena `name` y un objeto anidado `address` produce `class Root: name: str; address: Address` junto con una `class Address` separada, nombrada según la clave de la que proviene.
Correspondencia de tipos
Las cadenas se convierten en `str`, los números enteros en `int`, los decimales en `float`, los booleanos en `bool` y las listas en `List[ElementType]`. Las claves JSON que no son identificadores Python válidos (por ejemplo, con un guion) se convierten automáticamente en un nombre seguro.
Objetos anidados y listas
Cada objeto anidado obtiene su propia dataclass, generada a partir de su clave. La salida comienza con `from __future__ import annotations`, de modo que las dataclasses pueden referenciarse entre sí sin importar el orden en que se definan.
Limitaciones
Las dataclasses generadas describen solo la muestra JSON proporcionada y no incluyen una forma de reconstruirlas desde un dict (sin ayudantes `from_dict`/`to_dict`) — deberás añadir tu propia serialización si la necesitas. Las listas de objetos se tipan solo a partir de su primer elemento.
Privacidad
El análisis y la generación de código se ejecutan localmente en tu navegador. El JSON que pegas y el Python generado nunca se suben.
Preguntas Frecuentes
- ¿Por qué la salida incluye "from __future__ import annotations"?
- Permite que las dataclasses generadas se referencien entre sí sin importar el orden en que se definan, sin necesitar referencias adelantadas entre comillas.
- ¿Esto maneja claves JSON con guiones o espacios?
- Sí — una clave que no es un identificador Python válido se convierte automáticamente en uno seguro (por ejemplo, first-name pasa a first_name), aunque puede no parecerse exactamente a la clave original.
- ¿Esto incluye código de serialización/deserialización JSON?
- No — solo genera las formas de las dataclasses; añade tu propio json.loads/dataclasses.asdict o una biblioteca como dacite si necesitas convertir entre JSON y estos objetos.
Herramientas Relacionadas
Convertidor de JSON a TypeScript
Genera interfaces de TypeScript a partir de una muestra JSON directamente en tu navegador.
Convertidor de JSON a Java
Genera clases POJO de Java a partir de una muestra JSON directamente en tu navegador.
Convertidor de JSON a C#
Genera clases C# a partir de una muestra JSON directamente en tu navegador.