Maison  >  Article  >  développement back-end  >  PHP json_decode

PHP json_decode

王林
王林original
2024-08-29 13:09:30980parcourir

En PHP, la fonction intégrée json_decode() est définie comme une fonction ; comme son nom l'indique, il s'agit d'une fonction de conversion de n'importe quel objet JSON au format texte standard ou de décodage d'objets JSON en objets PHP, en prenant une chaîne JSON comme paramètre que cette fonction la convertit ou la décode et renvoie les valeurs codées qui étaient en JSON dans des objets PHP appropriés. Le PHP fournit généralement une fonction qui prend une chaîne JSON qui représente généralement un tableau javascript ou des littéraux d'objet pour convertir cette chaîne codée au format JSON en un type de données d'objet PHP particulier.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Fonctionnement de Json_decode() en PHP

Dans cet article, json_decode() est une fonction intégrée fournie par PHP pour convertir ou décoder la chaîne JSON en objets PHP. En PHP, la fonction json_decode() décode une chaîne JSON et la convertit en objets ou types de données PHP. Il prend les données JSON comme paramètre et renvoie la représentation PHP correspondante.

Dans la section ci-dessous, nous verrons la syntaxe et des exemples d'utilisation de la fonction json_decode() :

Syntaxe :

json_decode(json_string, asso_arr, recur_depth, opt<em>)</em>

Paramètres :

Json_string : ce paramètre est obligatoire pour spécifier la chaîne encodée en JSON pour la convertir en objets PHP

  • Asso_arr : ce paramètre permet de spécifier les valeurs booléennes qui peuvent renvoyer un tableau associé si la valeur est définie sur true, sinon renvoie un objet si elle est définie sur false. Ce paramètre est facultatif et a false comme valeur par défaut.
  • Recur_degree : ce paramètre est utilisé pour spécifier la profondeur de la récursion, et c'est également un paramètre facultatif avec 512 comme valeur par défaut.
  • Opt : ce paramètre est utilisé pour spécifier le masque de bits de JSON_OBJECT_AS_ARRAY, JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_SUBSTITUTE,, JSON_THROW_ON_ERROR et c'est également un paramètre facultatif.

Voyons maintenant un exemple simple qui utilise json_decode() de PHP dans une structure HTML.

Exemples de PHP json_decode

Voici les exemples donnés ci-dessous :

Exemple n°1

Code :

<!DOCTYPE html>
<html lang="en">
<head>
<title>Educba- PHP json_decode</title>
</head>
<body>
<?php
$json_string = '{
"CompayName": "Educba",
"Director": "Snehal",
"Employee": "Amardeep",
"address": {
"ColonyName": "Shivaji road",
"city": "Baramati",
"state": "Maharashtra",
"postalCode": "1234567"
},
"TelephoneNumbers": [
{ "type": "Work", "phonenumber": "9876543210" }
]
}';
var_dump(json_decode($json_string, true));
?>
</body>
</html>

Sortie :

PHP json_decode

Dans le programme ci-dessus, nous pouvons voir quand nous écrivons du code PHP dans une structure HTML ; nous commençons par « < ?php », puis nous écrivons le code, et à la fin, la balise de fermeture du code PHP est « ? > ». Il a un tableau (5), ce qui signifie qu'il a 5 éléments dans un tableau. Supposons que nous n'ayons rien défini ou que nous n'ayons pas transmis le paramètre asso_arr tel que « var_dump(json_decode($json_string)); » alors cette valeur nous donnerait accès à la propriété de l'objet dans un tableau comme indiqué dans la capture d'écran ci-dessous.

PHP json_decode

Nous allons maintenant voir un exemple ci-dessous : un format JSON invalide et transmettre cette chaîne à la fonction json_decode() et quelle erreur et résultat cela donnera. Nous verrons également comment imprimer ces tableaux, accessibles à l'aide de la fonction « echo » dans la section ci-dessous.

Exemple n°2

Dans le programme ci-dessous, nous verrons comment accéder à un élément d'un tableau à l'aide de la fonction echo.

Code :

<!DOCTYPE html>
<html lang="en">
<head>
<title>Educba- PHP json_decode</title>
</head>
<body>
<?php
$json_string = '[
{
"Companyname": "Educba",
"Director": "Snehal",
"phnumber": "89945954874"
},
{
"Companyname": "Google",
"Director": "Ann",
"phnumber": "9877564694"
}
]';
$x = json_decode($json_string);
echo $x[0]->Companyname;
?>
</body>
</html>

Sortie :

PHP json_decode

Dans le programme ci-dessus, nous pouvons voir quand nous avons déclaré une json_string et accédé à l'un des éléments du tableau ; nous utilisons array[index] dans n'importe quel langage de programmation. de même, nous l'écrivons avec la fonction echo, et dans le code ci-dessus, nous devons observer que nous n'avons pas passé le paramètre asso_arr dans la fonction json_decode(), donc pour accéder à l'élément, nous devons écrire « echo $x[ 0]-> Nom de l'entreprise;" et si nous définissons le deuxième paramètre sur "true" alors nous devons écrire "echo $x[0]['Companyname'];".

Exemple #3

Dans ce qui suit, nous verrons passer une chaîne JSON invalide à la fonction et essayerons également d'imprimer les erreurs.

Code :

<!DOCTYPE html>
<html lang="en">
<head>
<title>Educba- PHP json_decode</title>
</head>
<body>
<?php
$json_string = '[
{
"Companyname": "Educba"
"Director": "Snehal"
"phnumber": "89945954874"
"Companyname": "Google"
"Director": "Ann"
"phnumber": "9877564694"
}
]';
$x = json_decode($json_string);
echo $x[0]->Companyname;
echo json_last_error();
echo json_last_error_msg();
?>
</body>
</html>

Sortie :

PHP json_decode

Nous imprimons les informations d'erreur, telles que « 4 erreurs de syntaxe », en utilisant les fonctions json_last_error() et json_last_error_msg(). Ces fonctions fournissent des détails sur les erreurs liées au code PHP écrit dans l'exemple ci-dessus. Si nous ne voulons imprimer aucun message d'erreur à l'aide des fonctions d'erreur, la sortie sera « nulle », indiquant que les objets PHP convertis ou les données JSON elles-mêmes ne sont pas valides.

PHP json_decode

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:PHP include_onceArticle suivant:PHP include_once