JSON para classe PHP
Converta um exemplo JSON numa classe PHP tipada com construtor, fromArray e toArray.
JSON para classe PHP
Cole um objeto ou lista JSON e esta ferramenta deduz um tipo para cada campo, depois gera uma classe PHP pronta para usar: propriedades tipadas, construtor, método de fábrica estático fromArray() e método toArray() para converter o objeto de volta numa lista simples. Objetos aninhados tornam-se suas próprias classes automaticamente, e formas idênticas são reutilizadas em vez de duplicadas, portanto um payload com várias secções similarmente estruturadas ainda produz um ficheiro compacto.
O nome da classe e o nome do namespace nomeiam a classe raiz e, opcionalmente, envolvem-na num namespace PHP. O construtor promovido PHP 8 escreve as propriedades directamente na assinatura do construtor em vez de as declarar separadamente — desative-o para um construtor clássico explícito. Gerar getters e setters adiciona métodos acessores (isX() para booleanos, getX()/setX() caso contrário) em vez de expor propriedades directamente. declare(strict_types=1) adiciona o cabeçalho de tipo estrito do PHP, e comentários docblock anotam cada propriedade com o seu tipo deduzido. Campos array decidem se uma lista é tipada como um array simples ou documentada com o seu tipo de elemento, como string[], uma vez que o PHP não tem genéricos para isso na dica de tipo.
Um campo visto como nulo, ou em falta de alguns elementos de uma lista de objetos, é gerado como anulável — com uma verificação segura isset() quando precisa construir um objeto aninhado ou mapear uma lista, e um padrão null-coalescing caso contrário. Uma chave que colide com uma palavra-chave do PHP ou começa com um dígito é renomeada para um nome de propriedade válido, e cada propriedade gerada mantém a chave JSON original como sua chave de array em fromArray() e toArray().
Tudo funciona localmente no seu navegador — o JSON que cola, que pode incluir respostas API reais ou dados de configuração, nunca é carregado em lugar nenhum. Copie a classe gerada, transfira-a como ficheiro .txt, ou envie o resultado de volta para a entrada para refiná-lo ainda mais.