Outil Tool Kumar
JSON vers PHP
Générez des classes pour PHP 8.1 ou une version ultérieure, avec des propriétés typées readonly promues dans le constructeur. Chaque classe possède une méthode fromArray qui associe les clés JSON d'origine aux propriétés et construit les objets imbriqués.
Utiliser cet outil
- Collez une réponse représentative, en incluant des enregistrements dont les champs diffèrent.
- Vérifiez la sortie générée et modifiez le nom racine si nécessaire.
- Copiez ou téléchargez le code, puis vérifiez les types par rapport à votre contrat d'API.
Exemple détaillé
Cette sortie provient du convertisseur intégré. Les deux prix des articles donnent un champ à virgule flottante ; les valeurs null et chaîne du champ note donnent un champ nullable.
Entrée
{
"user-id": 42,
"profile": {
"city": "London",
"created_at": "2026-10-14T09:00:00Z"
},
"items": [
{
"price": 12,
"note": null
},
{
"price": 12.5,
"note": "gift"
}
]
}Sortie
<?php
declare(strict_types=1);
final class Root
{
public function __construct(
public readonly int $userId,
public readonly Profile $profile,
/** @var Item[] */
public readonly array $items,
) {
}
public static function fromArray(array $data): self
{
return new self(
userId: $data['user-id'],
profile: Profile::fromArray($data['profile']),
items: array_map(static fn ($x) => Item::fromArray($x), $data['items']),
);
}
}
final class Profile
{
public function __construct(
public readonly string $city,
public readonly string $createdAt,
) {
}
public static function fromArray(array $data): self
{
return new self(
city: $data['city'],
createdAt: $data['created_at'],
);
}
}
final class Item
{
public function __construct(
public readonly float $price,
public readonly ?string $note,
) {
}
public static function fromArray(array $data): self
{
return new self(
price: $data['price'],
note: $data['note'],
);
}
}
Choisir un tableau ou un modèle typé
Pour obtenir un tableau associatif PHP, json_decode avec true suffit. Pour utiliser les modèles générés, passez ce tableau à Root::fromArray. JSON_THROW_ON_ERROR signale les entrées mal formées.
Si un identifiant dépasse PHP_INT_MAX, JSON_BIGINT_AS_STRING peut en conserver les chiffres, mais vous devez remplacer le type float de la propriété générée correspondante par string. Un type float déduit ne permet pas de représenter un identifiant exactement.
$data = json_decode($responseBody, true, 512, JSON_THROW_ON_ERROR);
$model = Root::fromArray($data);Options et cas limites
- La sortie commence par declare(strict_types=1) et produit des classes final. Pour les tableaux d'objets imbriqués, les types des éléments sont indiqués dans PHPDoc et la construction utilise array_map.
- Les valeurs nullables utilisent ?type ; un champ dont les valeurs sont uniquement null ou de types hétérogènes utilise mixed. Les dates restent de type string.
- Les entiers utilisent int, et les entiers qui dépassent la plage des entiers signés sur 64 bits utilisent float, avec un risque de perte de précision. Vérifiez les limites de la plateforme PHP et décodez les grands identifiants sous forme de chaînes si nécessaire.
- La sortie n'implémente ni toArray ni JsonSerializable. Ajoutez une sérialisation explicite si vous avez besoin des clés JSON d'origine lors de l'encodage des classes.
Privé par défaut
Votre document reste dans ce navigateur. Tool Kumar analyse, convertit et crée les téléchargements sur votre appareil, sans compte ni étape d'envoi au serveur.
JSON vers PHP : questions fréquentes
- Puis-je convertir du JSON en tableau associatif PHP ?
- Oui, directement avec PHP : json_decode($json, true, 512, JSON_THROW_ON_ERROR). Ce générateur produit des classes de modèles typées plutôt qu'un littéral de tableau PHP.
- Quelle version de PHP le code généré nécessite-t-il ?
- PHP 8.1 ou une version ultérieure pour les propriétés promues readonly. La sortie utilise aussi des propriétés typées, des arguments nommés et strict_types.
- Comment les objets imbriqués deviennent-ils des classes ?
- fromArray appelle la méthode fromArray de la classe imbriquée. Les tableaux d'objets imbriqués utilisent array_map, avec les types des éléments indiqués dans PHPDoc.
- Les clés sont-elles conservées lors du réencodage en JSON ?
- La méthode fromArray conserve les correspondances d'entrée. La sortie n'a pas d'encodeur personnalisé : json_encode utilise donc les noms des propriétés de ces objets. Ajoutez JsonSerializable ou une méthode toArray si vous avez besoin des clés transmises dans le JSON d'origine.