Convertisseur JSON vers Python

Générez des dataclasses Python à partir d'un exemple JSON directement dans votre navigateur.

Cet outil fonctionne entièrement dans votre navigateur. Vos fichiers ne sont jamais envoyés à un serveur.

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: str

Ce que fait ce convertisseur

Lit une valeur JSON et génère les dataclasses Python correspondantes : une `@dataclass` par forme d'objet trouvée dans l'exemple, chaque champ étant annoté selon la valeur qu'il contient.

Mode d'emploi

Collez un objet, un tableau ou une valeur primitive JSON dans l'éditeur. Une dataclass `Root` (ou un alias de type, si la racine n'est pas un objet) apparaît immédiatement, avec une dataclass supplémentaire pour chaque forme d'objet imbriquée.

Exemple

Un objet avec une chaîne `name` et un objet imbriqué `address` produit `class Root: name: str; address: Address` ainsi qu'une `class Address` distincte, nommée d'après la clé dont elle provient.

Correspondance des types

Les chaînes deviennent `str`, les nombres entiers `int`, les décimaux `float`, les booléens `bool` et les tableaux `List[ElementType]`. Les clés JSON qui ne sont pas des identifiants Python valides (contenant un tiret, par exemple) sont automatiquement converties en un nom sûr.

Objets imbriqués et listes

Chaque objet imbriqué reçoit sa propre dataclass, générée à partir de sa clé. La sortie commence par `from __future__ import annotations`, afin que les dataclasses puissent se référencer entre elles quel que soit leur ordre de définition.

Limites

Les dataclasses générées ne décrivent que l'exemple JSON fourni et n'incluent pas de moyen de les reconstruire à partir d'un dict (pas d'assistants `from_dict`/`to_dict`) — ajoutez votre propre sérialisation si nécessaire. Les tableaux d'objets sont typés uniquement à partir de leur premier élément.

Confidentialité

L'analyse et la génération de code s'exécutent entièrement dans votre navigateur. Le JSON collé et le Python généré ne sont jamais transférés.

Questions Fréquentes

Pourquoi la sortie inclut-elle "from __future__ import annotations" ?
Cela permet aux dataclasses générées de se référencer entre elles quel que soit leur ordre de définition, sans nécessiter de références anticipées entre guillemets.
Cela gère-t-il les clés JSON avec des tirets ou des espaces ?
Oui — une clé qui n'est pas un identifiant Python valide est automatiquement convertie en un nom sûr (par exemple, first-name devient first_name), même si elle ne ressemble alors plus exactement à la clé d'origine.
Cela inclut-il du code de sérialisation/désérialisation JSON ?
Non — seules les formes des dataclasses sont générées ; ajoutez votre propre code json.loads/dataclasses.asdict ou une bibliothèque comme dacite si nécessaire.