Une introduction détaillée à l'utilisation de la fonction json_decode en php

不言
Libérer: 2023-04-04 15:50:02
avant
9915 Les gens l'ont consulté

Cet article vous apporte une introduction détaillée à l'utilisation de la fonction json_decode en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Nous savons tous que la fonction json_decode peut être utilisée pour décoder des chaînes au format JSON. Notre formulaire couramment utilisé est le suivant :

<?php
$json = &#39;some_json_data&#39;;
$result = json_decode($json, true);
Copier après la connexion

En fait, la fonction json_decode() a plusieurs paramètres. Selon les paramètres passés, le comportement de la fonction sera différent.

Données décodées

Vous avez peut-être vu la fonction json_decode() signaler l'erreur suivante :

Warning: json_decode() expects parameter 1 to be string, xxx given in
Copier après la connexion

Selon le message d'erreur, Le le premier paramètre doit être de type string Cependant, en fait, le premier paramètre peut être des trois types suivants :

  • string

  • null.

  • bool

En fonction du type de paramètres, la valeur de retour de la fonction changera également.

Valeur de retour

La fonction json_decode() renverra un objet par défaut si analyse correctement les données JSON.

Mais une fois le deuxième paramètre passé dans true ou le quatrième paramètre passé dans JSON_OBJECT_AS_ARRAY, la fonction renverra un tableau au lieu d'un objet si les données JSON sont analysées correctement.

Veuillez noter mon texte en gras. La fonction json_decode() renvoie un objet ou un tableau si les données JSON sont analysées correctement, mais dans certains cas, la fonction renverra d'autres données :

  • type de chaîne et correspond aux données au format JSON correct, après décodage, il renvoie un objet ou un tableau

  • À partir de PHP 5.6, il y a vrai, faux et nul dans les données JSON, si non utilisé Au format minuscule, le décodage échouera et null

  • la chaîne de type 'true', 'false', 'null' sera renvoyée (si toutes sont en minuscules)

  • D'autres paramètres de type chaîne renvoient null

  • true / false / null renvoient directement null

  • Autres types Les données directement signale une erreur

  • Lorsque la profondeur de récursion du troisième paramètre est 1, il renvoie directement null

Nous utilisons donc foreach pour décoder le lors de l'itération du données, vous devez faire attention à savoir si les données décodées sont un tableau. Sinon, une erreur sera signalée lors de l'itération.

Vous pouvez accéder au site officiel de JSON pour savoir quel type de données sont au format JSON

Profondeur de récursion

Le troisième paramètre représente la récursion. Profondeur, la profondeur doit être supérieure à 0, sinon une erreur sera signalée. Lorsque la profondeur de récursion est de 1, le résultat est nul, donc la profondeur de récursion minimale est de 2.

Options de décodage

Le quatrième paramètre est utilisé pour définir les options :

  • remplira certains caractères vides , facile à visualiser JSON_PRETTY_PRINT

  • Ne pas encoder JSON_UNESCAPED_SLASHES/

  • Ne pas encoder les caractères Unicode, la valeur par défaut est pour encoder JSON_UNESCAPED_UNICODE uXXXX

Gestion des erreurs

On peut aussi combiner la fonction json_last_error, json_last_error_msg(PHP >= 5.5) avec la fonction @opérateur :

<?php
$json = 'some_json_data';
$result = @json_decode((string)$json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    throw new Exception(json_last_error_msg());
}
Copier après la connexion

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!

Étiquettes associées:
php
source:segmentfault.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal