Travailler avec JSON en PHP : analyse et sérialisation pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction à JSON et PHP



JSON (JavaScript Object Notation) est un format léger d'échange de données qui est devenu le standard de facto pour l'interaction entre les serveurs web et les clients. Dans le développement web moderne avec PHP, vous rencontrerez JSON partout : des requêtes API aux fichiers de configuration et au stockage de données structurées.



Dans cet article, nous allons examiner deux processus fondamentaux du travail avec JSON en PHP :



  • Sérialisation — conversion d'un tableau ou d'un objet PHP en chaîne JSON (fonction json_encode()).
  • Analyse (désérialisation) — conversion inverse d'une chaîne JSON en variable PHP (fonction json_decode()).


Le contenu est destiné aux développeurs PHP débutants, nous allons donc progresser du simple au complexe, avec des exemples de code détaillés.



Sérialisation des données : fonction json_encode()



La sérialisation est le processus de conversion des données de la représentation interne de PHP (tableaux, objets) en une chaîne au format JSON. Cela est nécessaire lorsque vous souhaitez envoyer des données au client (navigateur, application mobile) ou les enregistrer dans un fichier/base de données dans un format universel.



Conversion d'un tableau en JSON



Le cas le plus simple est la sérialisation d'un tableau associatif :



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

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


Résultat de l'exécution :



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


Remarquez les drapeaux :

  • JSON_UNESCAPED_UNICODE — permet de conserver les caractères cyrilliques (sans ce drapeau, les caractères russes seront convertis en \\uXXXX).
  • JSON_PRETTY_PRINT — formate la sortie avec des indentations pour la lisibilité (utile pour le débogage, mais augmente la taille de la chaîne).


Conversion d'un objet en JSON



Les objets PHP peuvent également être sérialisés. Seules les propriétés publiques seront incluses :



<?phpclass Product {    public $id;    public $title;    private $secretPrice; // ne sera pas inclus dans 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);// Sortie : {"id":1,"title":"Ноутбук"}?>


Travail avec des structures imbriquées



JSON prend en charge l'imbrication. Les tableaux PHP de n'importe quelle profondeur sont correctement convertis :



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

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


Analyse JSON : fonction json_decode()



L'analyse (désérialisation) est le processus inverse : à partir d'une chaîne JSON, nous obtenons des données que PHP peut traiter.



Obtention d'un objet



Par défaut, json_decode() retourne un objet de la 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?>


Obtention d'un tableau



Si vous passez le deuxième argument true, la fonction retournera un tableau associatif :



&l                

Blogs

Book Recommendations