Convertisseur JSON vers classe Python
Collez du JSON, obtenez des classes Python : dataclass, Pydantic v2 ou TypedDict. Typage Optional correct, alias camelCase. 100 % dans le navigateur, gratuit.
Qu'est-ce que la conversion JSON vers Python ?
La conversion JSON vers Python transforme un échantillon JSON en classes Python prêtes à l'emploi — un dataclass de la bibliothèque standard, un modèle Pydantic v2 ou un TypedDict — pour ne plus jamais écrire à la main les définitions de champs d'une réponse d'API ou d'un fichier de configuration. Ce générateur de classe Python déduit les types corrects (int, float, str, bool, Optional), transforme les objets imbriqués en classes nommées et ajoute des alias Pydantic pour les clés camelCase, le tout à 100 % dans votre navigateur.
Exemples
Réponse d'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]
Une charge utile REST typique devient un @dataclass prêt à l'emploi. Les nombres entiers sont déduits en int, les décimaux en float, et les tableaux deviennent List[str].
Objet imbriqué (classe enfant en premier)
{"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
Les objets imbriqués deviennent des classes distinctes et nommées. La classe enfant (Owner) est émise avant la classe parente, pour que le code s'exécute sans from __future__ import annotations.
camelCase → alias 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 mode Pydantic, les champs sont en snake_case avec Field(alias=...) renvoyant vers la clé JSON d'origine, et populate_by_name vous laisse construire le modèle des deux façons — la validation fait ainsi l'aller-retour sur de vraies données d'API.
Tableau d'objets → TypedDict (clé optionnelle)
{"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]
Les tableaux d'objets fusionnent en un seul type d'élément. Une clé absente de certains éléments (nick) devient Optional. TypedDict décrit la forme d'un dict simple sans aucun coût à l'exécution.
Comment convertir du JSON en Python
- 1
Collez votre JSON
Déposez un objet JSON, un tableau ou une réponse d'API dans le champ de saisie. La conversion démarre instantanément.
- 2
Choisissez dataclass, Pydantic ou TypedDict
Basculez le style de sortie pour l'adapter à votre projet, et renommez la classe racine depuis le Root par défaut.
- 3
Copiez ou téléchargez
Récupérez le Python généré en un clic et collez-le directement dans votre code.
Common Use Cases
- Clients d'API typés
- Transformez un exemple de réponse REST ou GraphQL en modèles Pydantic ou en dataclass pour un client requests ou httpx, sans écrire à la main les définitions de champs.
- Analyse de configs et de fixtures
- Générez des modèles pour les fichiers de configuration JSON, les fixtures de test ou les charges utiles de webhooks que vous devez charger et valider.
- Prototypage rapide et annotations de types
- Collez une charge utile inconnue pour voir instantanément sa forme sous forme de types Python — un moyen rapide d'explorer une nouvelle API ou d'ajouter des annotations TypedDict à du code existant basé sur des dict.
Comment fonctionne la conversion
- Inférence structurelle
- Chaque objet devient une classe nommée ; les formes identiques sont dédupliquées pour obtenir une seule classe, pas des copies. Les tableaux d'objets sont fusionnés clé par clé, et les clés absentes de certains éléments deviennent Optional.
- Trois cibles idiomatiques
- dataclass conserve zéro dépendance et préserve les clés valides pour Root(**data) ; Pydantic v2 ajoute des alias Field et populate_by_name pour une vraie validation ; TypedDict décrit un dict simple pour les vérificateurs de types statiques, en utilisant la syntaxe fonctionnelle quand une clé n'est pas un identifiant.
- Typage correct et léger en dépendances
- Les nombres entiers correspondent à int (précision arbitraire, sans dépassement), les décimaux et les exposants à float, et les champs uniquement null à Optional[Any]. Les imports de typing (Optional, List, Any) ne sont ajoutés que lorsqu'ils sont réellement utilisés.
- 100 % côté navigateur
- L'analyse et la génération s'exécutent dans votre navigateur sans aucun appel réseau, vos données restent donc privées.
Conseils pour des modèles Python propres
- Adaptez le mode à la tâche
- Utilisez dataclass pour les conteneurs de données internes, Pydantic v2 quand vous validez ou analysez une entrée non fiable, et TypedDict quand vous n'avez besoin que d'annotations de types statiques sur des dict existants.
- Collez un échantillon représentatif
- Les champs ne sont marqués Optional que lorsqu'un échantillon les omet, et les valeurs uniquement null retombent sur Any. Un exemple complet et renseigné produit les types les plus précis.
- Nommez votre classe racine
- Donnez un nom racine parlant (User, ApiResponse) au lieu du Root par défaut, pour un code lisible et importable.
Questions fréquentes
Comment convertir du JSON en classe Python ?
Quelle est la différence entre les sorties dataclass, Pydantic et TypedDict ?
Comment générer un modèle Pydantic depuis du JSON ?
Comment la sortie dataclass gère-t-elle les clés camelCase ?
Comment les champs optionnels et null sont-ils typés ?
À quel type Python correspond chaque valeur JSON ?
Gère-t-il les objets imbriqués et les tableaux d'objets ?
Comment les mots-clés Python et les clés non identifiantes sont-ils gérés ?
Comment utiliser le dataclass généré pour analyser du JSON ?
Mes données JSON sont-elles privées et sécurisées ?
L'outil est-il gratuit ? Faut-il un compte ?
Outils connexes
Voir tous les outils →Décodeur et Encodeur Base64
Encodage et formatage
Décodez et encodez en Base64 en ligne gratuitement. Conversion en temps réel, support UTF-8 et émojis. 100 % privé, dans votre navigateur.
Convertisseur Base64 en Image
Encodage et formatage
Décodez une chaîne Base64 ou un URI de données en image dans votre navigateur. Aperçu, dimensions et MIME, puis téléchargement en PNG, JPG, GIF, SVG. Sans envoi.
Convertisseur CSV vers JSON
Encodage et formatage
Convertissez du CSV en JSON dans le navigateur. RFC 4180, inférence de types, ligne d'en-tête, sûr pour grands entiers. 100 % privé, sans envoi.
Convertisseur .env vers JSON
Encodage et formatage
Collez un fichier .env, obtenez du JSON instantanément. Vos mots de passe et clés API ne quittent jamais le navigateur — 100 % privé, sans envoi.
Décodeur d'entités HTML gratuit — Décoder le HTML
Encodage et formatage
Décodez les entités HTML et déséchappez le HTML en ligne — gratuit, sans inscription, 100 % dans votre navigateur. Reconvertit les références nommées, décimales & hex en caractères ; jamais envoyé.
Encodeur d'entités HTML gratuit — Échapper le HTML
Encodage et formatage
Encodez les entités HTML et échappez les caractères spéciaux (< > & " ') en ligne — gratuit, sans inscription, 100 % dans votre navigateur. Sortie nommée, décimale ou hexadécimale ; jamais envoyée.