Trabalhando com JSON em PHP: parsing e serialização para iniciantes

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

Introdução ao trabalho com JSON em PHP

\n\n

JSON (JavaScript Object Notation) é um formato leve de troca de dados, amplamente utilizado no desenvolvimento web para transmitir informações entre o cliente e o servidor. Apesar de sua origem no JavaScript, o JSON tornou-se um padrão universal, suportado por praticamente todas as linguagens de programação, incluindo PHP.

\n\n

No PHP, o trabalho com JSON é implementado nativamente, tornando o processamento deste formato simples e eficiente. Neste artigo, vamos detalhar como realizar parsing de JSON (conversão de string em estruturas de dados PHP) e serialização (conversão de dados PHP em string JSON). O material é voltado para desenvolvedores iniciantes, por isso vamos progredir do simples ao complexo.

\n\n

Ao final do artigo, você aprenderá a:

\n
    \n
  • Converter arrays e objetos PHP em JSON
  • \n
  • Fazer parsing de strings JSON em arrays associativos e objetos
  • \n
  • Tratar erros ao trabalhar com JSON
  • \n
  • Usar estruturas de dados aninhadas
  • \n
\n\n

Funções principais para trabalhar com JSON em PHP

\n\n

O PHP fornece duas funções principais para trabalhar com JSON:

\n\n

json_encode() — serialização de dados

\n\n

A função json_encode() converte uma variável PHP (array, objeto, string, número) em uma string JSON. Isso é chamado de serialização.

\n\n

Exemplo de uso básico:

\n\n
<?php\n// Array associativo\n$user = [\n    "name" => "João",\n    "age" => 28,\n    "email" => "joao@example.com",\n    "is_active" => true\n];\n\n$json = json_encode($user);\necho $json;\n// Saída: {"name":"João","age":28,"email":"joao@example.com","is_active":true}\n?>
\n\n

A função converte automaticamente os tipos de dados PHP para os tipos JSON correspondentes:

\n
    \n
  • Strings → strings JSON
  • \n
  • Números → números JSON
  • \n
  • Valores booleanos → true/false
  • \n
  • Arrays → objetos ou arrays JSON (depende das chaves)
  • \n
  • NULL → null
  • \n
\n\n

json_decode() — parsing de JSON

\n\n

A função json_decode() realiza a operação inversa — converte uma string JSON em uma variável PHP. Isso é chamado de parsing.

\n\n

Exemplo:

\n\n
<?php\n$jsonString = '{"name":"João","age":28,"email":"joao@example.com","is_active":true}';\n\n// Parsing em objeto (padrão)\n$userObject = json_decode($jsonString);\necho $userObject->name; // Saída: João\n\n// Parsing em array associativo (segundo parâmetro true)\n$userArray = json_decode($jsonString, true);\necho $userArray["name"]; // Saída: João\n?>
\n\n

Observe o segundo parâmetro da função json_decode():

\n
    \n
  • false (padrão) — retorna objetos stdClass
  • \n
  • true — retorna arrays associativos
  • \n
\n\n

Recursos avançados e tratamento de erros

\n\n

Trabalhando com estruturas aninhadas

\n\n

O JSON suporta objetos e arrays aninhados. O PHP lida facilmente com essas estruturas:

\n\n
<?php\n// Estrutura de dados complexa\n$data = [\n    "company" => "TechCorp",\n    "employees" => [\n        ["name" => "Ana", "position" => "Developer"],\n        ["name" => "Pedro", "position" => "Designer"],\n        ["name" => "Maria", "position" => "Manager"]\n    ],\n    "address" => [\n        "city" => "São Paulo",\n        "street" => "Paulista",\n        "building" => 10\n    ]\n];\n\n$json = json_encode($data, JSON_PRETTY_PRINT);\necho $json;\n?>
\n\n

O resultado será formatado para melhor legibilidade graças à flag JSON_PRETTY_PRINT.

\n\n

Tratamento de erros no parsing

\n\n

Ao trabalhar com dados externos (API, arquivos), é importante verificar se o JSON é válido. Use a função json_last_error():

\n\n
<?php\n$badJson = '{"name":                

Blogs

Book Recommendations