Codificação e decodificação JSON
Converta arrays PHP em JSON e analise respostas JSON com json_encode/json_decode.
Codificação e decodificação JSON é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.
O que é JSON
JSON (Notação de Objetos JavaScript) é um formato de dados leve usado na comunicação com APIs e em arquivos de configuração. PHP tem funções integradas para codificá-lo e decodificá-lo.
json_encode()
Converte um valor PHP (matriz, objeto ou escalar) em uma cadeia JSON.
<?php
$data = ["name" => "Alice", "age" => 30, "active" => true];
$json = json_encode($data);
echo $json; // {"name":"Alice","age":30,"active":true}json_decode()
Analisa uma cadeia JSON e retorna um valor PHP. Por padrão, retorna objetos stdClass; passe true como segundo argumento para obter matrizes associativas.
<?php
$json = '{"name":"Alice","age":30}';
$obj = json_decode($json); // stdClass
$arr = json_decode($json, true); // associative array
echo $arr["name"]; // "Alice"Formatação legível de JSON
Utilize a opção JSON_PRETTY_PRINT para formatar a saída e facilitar a leitura por pessoas.
<?php
$json = json_encode(["a" => 1, "b" => 2], JSON_PRETTY_PRINT);
echo $json;
// {
// "a": 1,
// "b": 2
// }Opções úteis de json_encode
Opções comuns: JSON_UNESCAPED_UNICODE (mantém UTF-8 como está), JSON_UNESCAPED_SLASHES (não adiciona barra invertida antes de /) e JSON_THROW_ON_ERROR (lança uma exceção em caso de falha).
<?php
$json = json_encode(["url" => "https://example.com/path"],
JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);Tratamento de erros
Verifique json_last_error() depois de codificar ou decodificar, ou utilize JSON_THROW_ON_ERROR para obter uma exceção automaticamente.
<?php
try {
$data = json_decode($input, true, 512, JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
echo "Invalid JSON: ".$e->getMessage();
}Codificação de objetos
Os objetos são codificados como objetos JSON. Por padrão, somente as propriedades públicas são incluídas. Implemente JsonSerializable para controlar a serialização.
<?php
class Point implements \JsonSerializable {
public function __construct(
private float $x, private float $y
) {}
public function jsonSerialize(): mixed {
return ["x" => $this->x, "y" => $this->y];
}
}
echo json_encode(new Point(1.0, 2.5)); // {"x":1,"y":2.5}Estruturas aninhadas
JSON permite aninhamento. Matrizes do PHP profundamente aninhadas são codificadas perfeitamente como objetos ou matrizes JSON aninhados.
<?php
$order = [
"id" => 1,
"items" => [
["sku" => "A1", "qty" => 2],
["sku" => "B3", "qty" => 1],
],
];
echo json_encode($order, JSON_PRETTY_PRINT);Profundidade da decodificação
O terceiro parâmetro de json_decode define a profundidade máxima da recursão (o padrão é 512). JSON muito profundo pode exigir um limite maior.
JSON_NUMERIC_CHECK
A opção JSON_NUMERIC_CHECK converte cadeias de caracteres numéricas em números durante a codificação. Utilize-a com cuidado: ela pode corromper números de telefone.
Processamento de JSON em fluxo
Para arquivos JSON muito grandes, utilize uma biblioteca de análise em fluxo, como halaxa/json-machine, em vez de carregar o arquivo inteiro com json_decode.
Resumo
json_encode converte valores do PHP em cadeias de caracteres JSON. json_decode analisa JSON. Utilize JSON_THROW_ON_ERROR para um tratamento seguro de erros.
Verificação rápida
Como obter uma matriz associativa a partir de json_decode?
Perguntas Frequentes
A aula “Codificação e decodificação JSON” é grátis?
Sim — o texto completo de “Codificação e decodificação JSON” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.
O que vou aprender em “Codificação e decodificação JSON”?
Converta arrays PHP em JSON e analise respostas JSON com json_encode/json_decode. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Codificação e decodificação JSON”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Codificação e decodificação JSON
- Realização de solicitações HTTP com cURL
- Tratamento de respostas e erros de APIs
- Criação de um cliente de API simples