Cola PHP à esquerda e clica em "Converter" — nós transformamos em JSONCola código PHP

O que esta ferramenta faz

Se você tem uma classe PHP cheia de propriedades tipadas e precisa de um payload JSON para um teste, uma chamada de API ou uma fixture, escrever o array na mão é chato. Cola o PHP aqui e você recebe JSON válido com cada propriedade preservada. Funciona com uma classe só, um arquivo de entidades Doctrine, um modelo Laravel Eloquent ou um array associativo puro — mesmo resultado, JSON válido na saída.

O conversor replica o que json_encode() faz em tempo de execução. Propriedades tipadas (PHP 7.4+) e readonly (PHP 8.1+) saem como chaves JSON comuns. Inteiros, floats, booleanos e strings mapeiam um para um. null vira null em JSON. Instâncias de objetos aninhados são expandidas em objetos JSON aninhados. Arrays associativos viram objetos JSON; arrays com índices numéricos viram arrays JSON — a mesma divisão que o json_encode faz.

Recursos modernos do PHP também são tratados. Enums com backing serializam para o valor de backing (string ou int). DateTimeImmutable sai como string ISO-8601. Se você colar várias classes de uma vez — tipo algo que pegou no Packagist — cada classe de topo vira sua própria chave no JSON, com os tipos aninhados expandidos. Métodos, constantes e propriedades estáticas são ignorados; só dados de instância entram na saída.

Como usar

Três passos. Funciona igual se você colar dez linhas ou um arquivo de Model inteiro.

1

Cola seu PHP (ou testa o exemplo)

Joga seu PHP no editor da esquerda como está. Uma definição de classe, uma instância nova, um array associativo ou várias classes — tudo bem. Clica em Carregar exemplo se quiser ver um caso realista antes.

Mantém a sintaxe PHP inteira — namespaces, use, modificadores de visibilidade, atributos. O parser ignora o boilerplate que não precisa.

2

Clica em Converter

Clica no botão verde Converter. A ferramenta lê o PHP, preserva cada propriedade e classe, e monta o JSON numa passada só. Vai aparecer um indicador de loading curto enquanto roda.

3

Copia o JSON

O painel da direita enche com JSON indentado. Cola direto no corpo de uma requisição HTTP, numa fixture do PHPUnit, num arquivo de config ou na doc da sua API.

Quando isso realmente ajuda

Montar payloads de requisição de API

Você tem um DTO CreateOrderRequest e precisa do corpo JSON correspondente para Postman, curl ou um teste de integração. Cola a classe, pega o payload.

Seed de Laravel ou Symfony

Transforma um monte de linhas <code>new Product(...)</code> de factory num arquivo JSON de seed para database:seed ou carregadores de fixture — chega de arrays feitos na mão.

Manter exemplos do OpenAPI honestos

Gera exemplos JSON para a sua spec OpenAPI direto dos seus DTOs reais, para os exemplos do schema ficarem em sincronia com o código.

Debugar a saída do json_encode

Quando um objeto não está serializando como você espera, cola aqui para ver o formato limpo — depois compara com o que <code>json_encode()</code> está realmente gerando.

Perguntas comuns

Funciona com propriedades tipadas e readonly do PHP 8?

Sim. Propriedades tipadas, tipos nullable (?string), modificadores readonly e propriedades promovidas no construtor são todas detectadas. O type hint não muda o valor JSON — só avisa o parser do que esperar.

E enums?

Enums com backing serializam para o valor de backing (string ou int). Enums puros sem tipo de backing saem com o nome do case. É o mesmo comportamento do json_encode padrão sobre um BackedEnum.

Array associativo vs indexado — qual vira objeto?

Mesma regra do json_encode: array sequencial começando em 0 vira array JSON; qualquer array com chaves string (ou chaves inteiras não sequenciais) vira objeto JSON.

Como DateTime e DateTimeImmutable são serializados?

Como strings ISO-8601, no mesmo formato que você tira de $dt->format(DateTime::ATOM). Se a data tem fuso horário, o offset é mantido na saída.

Posso colar um arquivo inteiro de models?

Pode. Cada classe de topo vira sua própria entrada JSON, objetos aninhados se expandem naturalmente e propriedades setadas no construtor são incluídas. Propriedades private e protected também saem — o parser olha para o formato, não para a visibilidade.

Meu código é armazenado?

Seu PHP é enviado para o backend para a conversão e não é persistido — não guardamos log do payload. Para código sensível, dá uma olhada antes de colar.

Outras ferramentas que podem te ajudar

PHP para JSON é uma peça do quebra-cabeça. Essas combinam bem com ela: