Processamento de JSON em PHP: funções, exemplos e melhores práticas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Processamento de JSON em PHP: guia completo



JSON (JavaScript Object Notation) é um formato leve de troca de dados que se tornou padrão para a comunicação entre cliente e servidor. Em PHP, o trabalho com JSON é implementado nativamente através das funções embutidas json_encode() e json_decode(). Neste artigo, abordaremos detalhadamente todos os aspectos do processamento de JSON em PHP: desde operações básicas até técnicas avançadas e tratamento de erros.



Funções principais para trabalhar com JSON em PHP



O PHP fornece duas ferramentas-chave para processamento de JSON:



  • json_encode() — converte um valor PHP (array, objeto, string) em uma string JSON.
  • json_decode() — decodifica uma string JSON de volta para um valor PHP.


Exemplo de uso básico de json_encode()



<?php// Dados de origem: array associativo$data = [    'name' => 'Иван',    'age' => 30,    'skills' => ['PHP', 'JavaScript', 'Python']];

// Codificando para JSON$jsonString = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);echo $jsonString;?>


Resultado da execução:



{    "name": "Иван",    "age": 30,    "skills": [        "PHP",        "JavaScript",        "Python"    ]}


A flag JSON_UNESCAPED_UNICODE preserva caracteres cirílicos sem escape, e JSON_PRETTY_PRINT formata a saída com indentação para legibilidade.



Exemplo de decodificação de JSON em PHP



<?php$jsonString = '{"name":"Анна","age":25,"city":"Москва"}';

// Decodificando para array associativo (segundo argumento true)$array = json_decode($jsonString, true);echo $array['name']; // Аннаecho $array['city']; // Москва

// Decodificando para objeto (padrão)$object = json_decode($jsonString);echo $object->name; // Анна?>


Tratamento de erros ao trabalhar com JSON



Ao trabalhar com dados externos, é importante verificar a validade do JSON. Para isso, use json_last_error() e json_last_error_msg():



<?php$invalidJson = '{name: "Ошибка"}'; // JSON inválido (chave sem aspas)

$decoded = json_decode($invalidJson);

if (json_last_error() !== JSON_ERROR_NONE) { $errorMsg = json_last_error_msg(); echo "Erro de decodificação JSON: $errorMsg"; // Saída: Erro de decodificação JSON: Syntax error}?>


Trabalhando com estruturas aninhadas



JSON é excelente para dados hierárquicos complexos. Veja um exemplo com arrays e objetos aninhados:



<?php$complexData = [    'users' => [        [            'id' => 1,            'name' => 'Петр',            'orders' => [                ['product' => 'Ноутбук', 'price' => 75000],                ['product' => 'Мышь', 'price' => 1500]            ]        ],        [            'id' => 2,            'name' => 'Мария',            'orders' => []        ]    ],    'total_orders' => 2];

$json = json_encode($complexData, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);file_put_contents('data.json', $json); // Salvando em arquivo

// Lendo de volta$jsonFromFile = file_get_contents('data.json');$restoredData = json_decode($jsonFromFile, true);

// Acessando dados aninhadosecho $restoredData['users'][0]['orders'][0]['product']; // Ноутбук?>


Opções avançadas de json_encode()



O PHP suporta diversas flags para ajuste fino da codificação:



  • JSON_FORCE_OBJECT — força a codificação de um array como objeto.
  • JSON_NUMERIC_CHECK — converte strings numéricas em números.
  • JSON_UNESCAPED_SLASHES — não escapa barras.
  • JSON_THROW_ON_ERROR — lança uma exceção em caso de erro (

Recommendations