JSON para Array PHP

Cole um documento JSON e obtenha um literal de array PHP formatado para um arquivo de origem .php, sintaxe de array curta ([...]), indentação adequada, strings corretamente entre aspas, objetos aninhados se tornando arrays associativos e arrays permanecendo indexados. Útil para embutir fixtures de API em testes ou semear arquivos de configuração.

Como converter JSON para PHP

  1. 1

    Cole o JSON

    Qualquer JSON válido, objetos, arrays, profundamente aninhados.

  2. 2

    Escolha a sintaxe

    Sintaxe curta `[...]` (PHP 5.4+) ou longa `array(...)` (raramente necessária agora).

  3. 3

    Escolha as aspas para strings

    Aspas simples (sem interpolação, escape de apóstrofos) ou aspas duplas (permite interpolação `$`, geralmente não é o que você quer para dados).

  4. 4

    Copie o array

    Cole em seu arquivo `.php`, atribua a um `return`, ou envolva em `config([...])`.

Exemplo

Entrada:

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

Saída (sintaxe curta, aspas simples):

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

Mapeamento de tipos

JSON PHP
string string (aspas simples)
inteiro int
número (decimal) float
booleano true / false
null null
array (JSON) array indexado
objeto (JSON) array associativo

Quando usar associativo vs indexado

PHP tem um tipo de array com ambos os comportamentos. JSON distingue claramente objeto e array, então o mapeamento é:

  • {} -> associativo (['key' => value]).
  • [] -> indexado ([value, value]).

O gerador sempre preserva a distinção; misturar os dois em PHP é legal, mas confuso.

Armadilhas específicas do PHP

  • Chaves de string numéricas. PHP converte "42" para a chave inteira 42 em um array. Se seu JSON usa strings numéricas como chaves e você precisa delas como strings, a viagem de ida e volta com array_combine não as preservará.
  • Inteiros grandes. JSON pode conter inteiros maiores que PHP_INT_MAX em compilações de 32 bits. O gerador avisa quando isso pode acontecer.
  • UTF-8. Strings PHP são sequências de bytes; o gerador emite UTF-8 literalmente. Certifique-se de que seu arquivo .php esteja salvo como UTF-8 sem BOM.

Casos de uso

  • Arquivos de configuração: Laravel e Symfony usam configuração de array PHP. Colocar uma configuração JSON no estilo de fornecedor funciona bem.
  • Fixtures de teste: fixtures do PHPUnit são mais limpas como arrays do que como arquivos JSON carregados em tempo de execução.
  • Seeds: semeadores de banco de dados no Laravel frequentemente começam como um despejo JSON e se tornam arrays PHP.

Erros comuns

  • Retornar arrays PHP de volta para JSON. json_encode trata um array associativo como um objeto e um array indexado como um array. Se você misturá-los (['key' => 'val', 0 => 'x']), você obtém um objeto na saída. Mantenha arrays com formato JSON como arrays JSON.
  • Aspas duplas com apóstrofos. Strings PHP entre aspas simples precisam de \\' escapado; strings entre aspas duplas precisam de \\" escapado e variáveis interpoladas acidentalmente se você não tiver cuidado. Fique com aspas simples para dados.
  • Esquecer vírgulas finais. PHP permite desde PHP 7.3 e elas tornam as diferenças mais limpas. O gerador as adiciona por padrão.

Perguntas frequentes

A sintaxe curta ([...]) está disponível desde PHP 5.4 e é a escolha idiomática para todo código moderno. A sintaxe longa (array(...)) é necessária apenas para código que deve rodar em PHP 5.3 ou anterior, essencialmente sistemas legados.

Sim. Arquivos de configuração do Laravel são arrays PHP simples retornados de um arquivo. Cole a saída do gerador após return e salve em config/.

Strings PHP entre aspas simples não interpolam variáveis ou sequências de escape (exceto \' e \\). Para literais de dados, isso é mais rápido e seguro. Aspas duplas só importam quando você quer \n, \t, ou $variable dentro da string.

Não, ele emite um literal de array. Envolva você mesmo com return, const, ou uma propriedade de classe conforme necessário. Manter a saída pequena a torna composável.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas