Trabalho 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 JSON e PHP



JSON (JavaScript Object Notation) é um formato leve de troca de dados que se tornou o padrão de facto para comunicação entre servidores web e clientes. No desenvolvimento web moderno com PHP, você encontrará JSON em toda parte: desde requisições de API até arquivos de configuração e armazenamento de dados estruturados.



Neste artigo, abordaremos dois processos fundamentais de trabalho com JSON em PHP:



  • Serialização — conversão de um array ou objeto PHP em uma string JSON (função json_encode()).
  • Parsing (desserialização) — conversão inversa de uma string JSON em uma variável PHP (função json_decode()).


O material é voltado para desenvolvedores PHP iniciantes, então iremos do simples ao complexo, com exemplos de código detalhados.



Serialização de dados: função json_encode()



Serialização é o processo de converter dados da representação interna do PHP (arrays, objetos) em uma string no formato JSON. Isso é necessário quando você deseja enviar dados para o cliente (navegador, aplicativo móvel) ou salvá-los em um arquivo/banco de dados em um formato universal.



Conversão de array para JSON



O caso mais simples é a serialização de um array associativo:



<?php$user = [    "name" => "Иван Петров",    "age" => 28,    "email" => "ivan@example.com",    "is_active" => true];

$jsonString = json_encode($user, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);echo $jsonString;?>


Resultado da execução:



{    "name": "Иван Петров",    "age": 28,    "email": "ivan@example.com",    "is_active": true}


Observe as flags:

  • JSON_UNESCAPED_UNICODE — permite preservar caracteres cirílicos (sem esta flag, caracteres russos serão convertidos para \\uXXXX).
  • JSON_PRETTY_PRINT — formata a saída com indentação para legibilidade (útil para depuração, mas aumenta o tamanho da string).


Conversão de objeto para JSON



Objetos PHP também podem ser serializados. Apenas propriedades públicas serão incluídas:



<?phpclass Product {    public $id;    public $title;    private $secretPrice; // não será incluído no JSON

public function __construct($id, $title, $price) { $this->id = $id; $this->title = $title; $this->secretPrice = $price; }}

$product = new Product(1, "Ноутбук", 75000);echo json_encode($product, JSON_UNESCAPED_UNICODE);// Saída: {"id":1,"title":"Ноутбук"}?>


Trabalho com estruturas aninhadas



JSON suporta aninhamento. Arrays PHP de qualquer profundidade são convertidos corretamente:



<?php$data = [    "company" => "TechCorp",    "employees" => [        ["name" => "Анна", "position" => "Разработчик"],        ["name" => "Борис", "position" => "Дизайнер"]    ],    "address" => [        "city" => "Москва",        "street" => "Тверская"    ]];

echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);?>


Parsing JSON: função json_decode()



Parsing (desserialização) é o processo inverso: a partir de uma string JSON, obtemos dados com os quais o PHP pode trabalhar.



Obtendo um objeto



Por padrão, json_decode() retorna um objeto da classe stdClass:



<?php$jsonString = '{"name":"Иван Петров","age":28,"email":"ivan@example.com"}';$user = json_decode($jsonString);

echo $user->name; // Иван Петровecho $user->age; // 28echo $user->email; // ivan@example.com?>


Obtendo um array



Se você passar o segundo argumento true, a função retornará um array associativo:



&l                

Blogs

Book Recommendations