Convertisseur PHP vers JSON
Colle des classes, tableaux ou objets PHP. Récupère du JSON propre.
Ce que fait cet outil
Si tu as une classe PHP bourrée de propriétés typées et qu'il te faut un payload JSON pour un test, un appel API ou une fixture, écrire le tableau à la main est chiant. Colle le PHP ici et tu récupères du JSON valide avec toutes les propriétés préservées. Fonctionne avec une seule classe, un fichier d'entités Doctrine, un modèle Laravel Eloquent ou un simple tableau associatif — même résultat, JSON valide en sortie.
Le convertisseur reproduit ce que fait json_encode() à l'exécution. Les propriétés typées (PHP 7.4+) et readonly (PHP 8.1+) ressortent comme des clés JSON classiques. Les entiers, flottants, booléens et chaînes se mappent un à un. null devient null en JSON. Les instances d'objets imbriquées sont dépliées en objets JSON imbriqués. Les tableaux associatifs deviennent des objets JSON ; les tableaux à index numérique deviennent des tableaux JSON — la même distinction que fait json_encode.
Les fonctionnalités modernes de PHP sont aussi gérées. Les enums typés se sérialisent sur leur valeur de backing (string ou int). DateTimeImmutable sort en chaîne ISO-8601. Si tu colles plusieurs classes d'un coup — genre un bout de code récupéré sur Packagist — chaque classe de premier niveau devient sa propre clé dans le JSON, avec les types imbriqués dépliés. Méthodes, constantes et propriétés statiques sont ignorées ; seules les données d'instance finissent dans la sortie.
Comment s'en servir
Trois étapes. Pareil que tu colles dix lignes ou un fichier Model entier.
Colle ton PHP (ou essaie l'exemple)
Dépose ton PHP dans l'éditeur de gauche tel quel. Une définition de classe, une nouvelle instance, un tableau associatif ou plusieurs classes — tout passe. Clique sur Charger un exemple si tu veux voir un cas réaliste d'abord.
Garde la syntaxe PHP complète — namespaces, use, modificateurs de visibilité, attributs. Le parser ignore le boilerplate dont il n'a pas besoin.
Clique sur Convertir
Clique sur le bouton vert Convertir. L'outil lit le PHP, préserve chaque propriété et chaque classe, et construit le JSON en une passe. Tu verras un petit indicateur de chargement le temps que ça tourne.
Copie le JSON
Le panneau de droite se remplit avec du JSON indenté. Colle-le direct dans un corps de requête HTTP, une fixture PHPUnit, un fichier de config ou la doc de ton API.
Quand ça sert vraiment
Construire des payloads de requêtes API
Tu as un DTO CreateOrderRequest et il te faut le corps JSON correspondant pour Postman, curl ou un test d'intégration. Colle la classe, récupère le payload.
Seeder Laravel ou Symfony
Transforme un paquet de lignes <code>new Product(...)</code> de factory en fichier JSON de seed pour database:seed ou pour les loaders de fixtures — fini les tableaux à la main.
Garder tes exemples OpenAPI honnêtes
Génère les exemples JSON de ta spec OpenAPI direct depuis tes vrais DTOs, pour que les exemples du schéma restent en phase avec le code.
Déboguer la sortie de json_encode
Quand un objet ne se sérialise pas comme prévu, colle-le ici pour voir la forme propre — puis compare avec ce que <code>json_encode()</code> produit vraiment.
Questions courantes
Il gère les propriétés typées et readonly de PHP 8 ?
Oui. Propriétés typées, types nullables (?string), modificateurs readonly et propriétés promues dans le constructeur sont tous pris en compte. L'indication de type ne change pas la valeur JSON — elle dit juste au parser à quoi s'attendre.
Et les enums ?
Les enums typés se sérialisent avec leur valeur de backing (string ou int). Les enums purs sans type de backing sortent avec le nom du case. C'est le même comportement que le json_encode standard sur un BackedEnum.
Tableau associatif vs tableau indexé — lequel devient un objet ?
Même règle que json_encode : un tableau séquentiel indexé à partir de 0 devient un tableau JSON ; tout tableau avec des clés string (ou des clés entières non séquentielles) devient un objet JSON.
Comment DateTime et DateTimeImmutable sont sérialisés ?
En chaînes ISO-8601, le même format que tu obtiens avec $dt->format(DateTime::ATOM). Si la date contient un fuseau horaire, le décalage est conservé en sortie.
Je peux coller un fichier de models entier ?
Oui. Chaque classe de premier niveau devient sa propre entrée JSON, les objets imbriqués se déplient naturellement, et les propriétés initialisées dans le constructeur sont incluses. Les propriétés private et protected ressortent aussi — le parser regarde la forme, pas la visibilité.
Mon code est-il stocké ?
Ton PHP est envoyé au backend pour la conversion et n'est pas persisté — on ne logue pas le payload. Pour du code sensible, jette un œil avant de coller.
Autres outils qui peuvent te servir
PHP vers JSON, c'est une brique. Ceux-là vont bien avec :