JSON vers tableau PHP

Collez un document JSON et obtenez un littéral de tableau PHP formaté pour un fichier source .php, syntaxe de tableau courte ([...]), indentation correcte, chaînes correctement entre guillemets, objets imbriqués devenant des tableaux associatifs et des tableaux restant indexés. Utile pour intégrer des fixtures API dans des tests ou pour peupler des fichiers de configuration.

Comment convertir JSON en PHP

  1. 1

    Collez le JSON

    Tout JSON valide, objets, tableaux, profondément imbriqués.

  2. 2

    Choisissez la syntaxe

    Courte `[...]` (PHP 5.4+) ou longue `array(...)` (rarement nécessaire maintenant).

  3. 3

    Choisissez les guillemets de chaîne

    Guillemets simples (pas d'interpolation, échapper les apostrophes) ou guillemets doubles (permet l'interpolation `$`, généralement pas ce que vous voulez pour les données).

  4. 4

    Copiez le tableau

    Collez dans votre fichier `.php`, assignez à un `return`, ou enveloppez dans `config([...])`.

Exemple

Entrée:

{ "app": { "name": "Hyperion", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }

Sortie (syntaxe courte, guillemets simples):

[
    'app' => [
        'name' => 'Hyperion',
        'debug' => true,
        'hosts' => [
            'h1.example.com',
            'h2.example.com',
        ],
    ],
]

Mappage des types

JSON PHP
chaîne chaîne (guillemets simples)
entier int
nombre (décimal) float
booléen true / false
null null
tableau (JSON) tableau indexé
objet (JSON) tableau associatif

Quand utiliser associatif vs indexé

PHP a un type de tableau avec les deux comportements. JSON distingue clairement objet et tableau, donc le mappage est :

  • {} -> associatif (['key' => value]).
  • [] -> indexé ([value, value]).

Le générateur préserve toujours la distinction ; mélanger les deux en PHP est légal mais déroutant.

Pièges spécifiques à PHP

  • Clés de chaîne numérique. PHP convertit "42" en la clé entière 42 dans un tableau. Si votre JSON utilise des chaînes numériques comme clés et que vous avez besoin qu’elles restent des chaînes, le round-trip array_combine ne les préservera pas.
  • Grands entiers. JSON peut contenir des entiers plus grands que PHP_INT_MAX sur des versions 32 bits. Le générateur avertit lorsque cela pourrait se produire.
  • UTF-8. Les chaînes PHP sont des séquences d’octets ; le générateur émet UTF-8 littéralement. Assurez-vous que votre fichier .php est enregistré en UTF-8 sans BOM.

Cas d’utilisation

  • Fichiers de configuration : Laravel et Symfony utilisent tous deux des configurations de tableau PHP. Coller une configuration JSON de style fournisseur fonctionne bien.
  • Fixtures de test : les fixtures PHPUnit sont plus propres sous forme de tableaux que sous forme de fichiers JSON chargés à l’exécution.
  • Seeders : les seeders de base de données dans Laravel commencent souvent comme un dump JSON et deviennent des tableaux PHP.

Erreurs courantes

  • Retourner des tableaux PHP vers JSON. json_encode traite un tableau associatif comme un objet et un tableau indexé comme un tableau. Si vous les mélangez (['key' => 'val', 0 => 'x']), vous obtenez un objet à la sortie. Gardez les tableaux en forme JSON comme des tableaux JSON.
  • Guillemets doubles avec apostrophes. Les chaînes PHP entre guillemets simples nécessitent d’échapper \\'; les chaînes entre guillemets doubles nécessitent d’échapper \\" et les variables sont interpolées accidentellement si vous n’êtes pas prudent. Restez avec des guillemets simples pour les données.
  • Oublier les virgules finales. PHP les autorise depuis PHP 7.3 et elles rendent les différences plus propres. Le générateur les ajoute par défaut.

Questions fréquentes

La syntaxe courte ([...]) est disponible depuis PHP 5.4 et est le choix idiomatique pour tout code moderne. La syntaxe longue (array(...)) n’est nécessaire que pour le code qui doit fonctionner sur PHP 5.3 ou antérieur, essentiellement des systèmes hérités.

Oui. Les fichiers de configuration Laravel sont de simples tableaux PHP retournés depuis un fichier. Collez la sortie du générateur après return et enregistrez-la dans config/.

Les chaînes PHP entre guillemets simples n’interpolent pas les variables ni les séquences d’échappement (sauf \' et \\). Pour les littéraux de données, c’est plus rapide et plus sûr. Les guillemets doubles ne comptent que lorsque vous voulez \n, \t, ou $variable à l’intérieur de la chaîne.

Non, il émet un littéral de tableau. Enveloppez-le vous-même avec return, const, ou une propriété de classe si nécessaire. Garder la sortie petite la rend composable.

Outils similaires

Outil disponible dans d’autres langues