PHP est un langage de script côté serveur permettant de créer le système dorsal de votre site Web, qui peut servir des pages Web, communiquer avec des bases de données et échanger des données sur Internet. Un cadre de travail décent comme PHP doit être capable de fournir et de traiter des données dans n’importe quel format (par exemple, XML, JSON, etc.).
JSON étant un format de données omniprésent pour le partage et le stockage de données, il est vital qu’un backend PHP permette le traitement de données JSON. C’est pourquoi json_encode (et json_decode) entrent en jeu et permettent aux données traitées par PHP d’être compatibles avec les cadres et les systèmes qui traitent les données JSON, ce qui facilite et accélère le développement web.
Dans cet article, nous allons apprendre le format JSON, les fonctions de la fonction json_encode() Ce qu’elle est, pourquoi elle est nécessaire et comment elle peut être utilisée pour convertir des structures de données PHP au format JSON, le tout avec des exemples. Enfin, nous verrons également comment décoder les données JSON pour pouvoir les traiter. C’est parti !
Qu’est-ce que la fonction JSON_Encode ?
Qu’est-ce que JSON ?
JSON (JavaScript Object Notation) est l’un des formats de fichiers standard ouverts les plus populaires utilisés pour le stockage et le partage de données. Il utilise un texte lisible par l’homme pour représenter les données à l’aide de paires attribut-valeur et de types de données de type tableau.
Voici à quoi ressemble un objet JSON courant…
{
"library": {
"name": "My Library",
"books": [
{"id": 101, "label": "Lorem Ipsum"},
{"id": 102, "label": "Dolor sir amet"},
{"id": 103, "label": "Lorem ipsum dolor"}
]
}
}
Nous utiliserons cet exemple dans les sections suivantes pour comprendre comment encoder des données PHP au format JSON.
JSON nous permet de représenter et d’encapsuler des données complexes d’une manière organisée qui peut être partagée facilement sur Internet. Bien que JSON tire son nom de JavaScript, JSON a été créé pour être utilisé par tous les langages de programmation.
Voyons comment nous pouvons convertir nos variables PHP au format JSON.
JSON_Encode – Conversion des variables PHP en JSON
json_encode() est une fonction native de PHP qui vous permet de convertir des données PHP au format JSON.
json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] ) : string
La fonction prend en compte un objet PHP ($value) et renvoie une chaîne JSON (ou Faux si l’opération échoue). Ne vous préoccupez pas du $options et $depth les paramètres ; vous en aurez rarement besoin.
Prenons un exemple simple –
<?php
$arr = array('a' => 1, 'b' => 2);
echo json_encode($arr);
?>
SORTIE :
Pourquoi encoder en JSON ?
Comme nous l’avons vu plus haut, JSON est l’un des formats les plus courants pour échanger des données sur internet. Par conséquent, il peut être impératif dans certains cas pour les serveurs PHP de fournir des données encodées en JSON et d’être capable de les traiter.
Voyons comment nous pouvons encoder diverses structures de données PHP en JSON en utilisant json_encode().
Convertir des chaînes PHP en JSON
L’encodage JSON d’une chaîne de caractères est la chaîne elle-même. Par conséquent, l’encodage d’une chaîne PHP en JSON est assez simple ; la même chaîne est retournée.
Voyons cela à l’aide d’un exemple –
Exemple de conversion d’une chaîne PHP en JSON
<?php
$my_string = "Hello World!";
echo json_encode($my_string);
?> ⠀
SORTIE :
Convertir les objets PHP en JSON
Puisque les informations dans JSON sont stockées dans des paires clé/valeur, json_encode() est plus susceptible d’être utilisé pour encoder les objets PHP et leurs variables d’instance.
Exemple de conversion d’un objet PHP en JSON
Comprenons comment nous pouvons encoder un objet PHP en JSON en créant une instance de la classe Book basée sur l’exemple de Library que nous avons vu plus haut (Sec 1.1). Nous allons créer deux variables d’instance pour l’instance du livre et encoder l’objet en utilisant json_encode().
<?php
class Book {
}
$book = new Book();
$book->id = 101;
$book->label = "Lorem ipsum";
$jsonData = json_encode($book);
echo $jsonData."n";
?>
SORTIE :
Convertir un tableau PHP en JSON
Il existe trois types de tableaux en PHP, à savoir les tableaux indexés, les tableaux associatifs et les tableaux multidimensionnels. Voyons ce qu’ils sont et quelques exemples de la façon dont nous pouvons encoder chacun d’entre eux en JSON.
Tableau indexé en JSON
Les tableaux indexés sont des tableaux conventionnels représentés par des numéros d’index.
Exemple : $arr = array(1,2,3,4); // [1,2,3,4]
Il est assez facile de les convertir en JSON.
<?php
$arr = array(1,2,3,4);
echo json_encode($arr);
?>
SORTIE :
Tableau associatif vers JSON
Les tableaux associatifs sont des tableaux qui utilisent des clés nommées comme indices pour vos valeurs.
Exemple : $age = array("John"=>"11", "Ken"=>"19", "Tim"=>"14");
Nous pouvons également obtenir l’objet JSON livre que nous avons vu plus haut en codant un tableau associatif comme suit : –$age = array("John"=>"11", "Ken"=>"19", "Tim"=>"14");
.
<?php
$book = array("id"=>101, "label"=>"Lorem Ipsum");
echo json_encode($book);
?>
SORTIE :
Remarquez comment un tableau indexé est représenté par un tableau en JSON, alors que les tableaux associatifs prennent la forme d’un objet JSON complet après avoir été encodés.
Tableau multidimensionnel vers JSON
Les tableaux multidimensionnels peuvent être créés en emboîtant les tableaux les uns dans les autres, comme suit :.
$multid_arr = array(
array(1,2,3,4),
array(1,2,3,4),
);
Nous pouvons créer un tableau multidimensionnel pour stocker une liste de livres pour notre exemple de bibliothèque. Créons-en un et encodons-le en JSON.
<?php
$books = array(
array("id"=>101, "label"=>"Lorem Ipsum"),
array("id"=>102, "label"=>"Dolor sir amet"),
array("id"=>103, "label"=>"Lorem Ipsum dolor"),
);
echo json_encode($books);
?>
SORTIE :
Assembler le tout
Maintenant que nous avons vu comment json_encode() est utilisé dans différents contextes, pour encoder différents types de données PHP, mettons tout ce que nous avons appris ensemble pour créer des données JSON pour l’exemple de la bibliothèque que nous avons vu ci-dessus.
<?php
// MyClass.php
class MyClass {
}
class Library {
}
class Book {
}
$book1 = new Book();
$book1->id = 101;
$book1->label = "Lorem ipsum";
$book2 = new Book();
$book2->id = 102;
$book2->label = "Dolor sir amet";
$books = array($book1, $book2);
$library = new Library();
$library->books = $books;
$myClass = new MyClass();
$myClass->library = $library;
$jsonData = json_encode($myClass);
echo $jsonData."n";
SORTIE :
Eh bien, c’était amusant ! Avant de conclure, je pense qu’il est utile de voir comment nous pouvons reconvertir des données JSON en variables PHP.
JSON_Decode – JSON en variables PHP
Dans le cas très probable où votre front-end JavaScript renvoie des données JSON à votre serveur PHP, vous aurez besoin d’un moyen de décoder les données JSON de manière à ce qu’elles puissent être traitées par PHP.
Nous pouvons utiliser la fonction json_decode() qui prend une chaîne encodée en JSON et renvoie la variable PHP correspondante.
json_decode(
string $json
,
?bool $associative
= null
,
int $depth
= 512,
int $flags
= 0
): mixed
$associative (Null par défaut) est utilisé pour spécifier si la fonction doit retourner un tableau associatif ou un objet de classe standard.
Exemple de JSON_Decode
Essayons de récupérer l’objet livre que nous avons encodé en JSON ci-dessus en le décodant à l’aide de la méthode suivante php_decode().
<?php
$book_json = '{"id":101,"label":"Lorem Ipsum"}';
$book = json_decode($book_json);
var_dump($book);
?>
SORTIE :
Notez comment par défaut un stdClass est retourné. Pour le décoder en tant que tableau associatif, définissez l’attribut $assoc à True comme tel –
$book = json_decode($book_json, True);
Ceci aura pour résultat de retourner un tableau associatif.
SORTIE :
Essayez la fonction JSON_Encode par vous-même
Dans ce billet, nous avons lu des informations sur le format JSON (JavaScript Object Notation), pourquoi il est essentiel, et comment nous pouvons convertir différentes variables PHP en JSON en utilisant la fonction json_encode(). Nous avons également vu comment nous pouvions utiliser json_decode() pour décoder les données JSON en variables PHP. Avec cette compréhension du traitement des données JSON en PHP, allez-y, encodez vos objets PHP en JSON et partagez-les sur Internet. Tout cela en restant chez vous. Restez en bonne santé et en sécurité !