Pourquoi json_decode() lance-t-il « Impossible d'utiliser un objet de type stdClass comme tableau » ?

Mary-Kate Olsen
Libérer: 2024-11-17 08:06:03
original
931 Les gens l'ont consulté

Why Does json_decode() Throw

Erreur « Impossible d'utiliser un objet de type stdClass comme tableau » : une énigme de décodage Json

Lorsque vous travaillez avec des données JSON à l'aide de json_decode() fonction, vous pouvez rencontrer une erreur énigmatique qui se lit comme suit : "Impossible d'utiliser un objet de type stdClass comme tableau". Cette erreur vient du fait que json_decode() renvoie par défaut un objet au lieu d'un tableau, même si les données JSON que vous décodez peuvent être structurées sous forme de tableau.

Pour corriger ce problème et permettre l'accès à éléments du tableau, vous pouvez exploiter le deuxième paramètre de la fonction json_decode(). En définissant ce paramètre sur true, vous demandez à la fonction de renvoyer un tableau plutôt qu'un objet.

Par exemple, considérons le code suivant :

$data = '{"context": "some value"}';
$result = json_decode($data);
Copier après la connexion

Dans ce scénario, $result serait être un objet, et tenter d'accéder à sa propriété "context" sous forme de tableau, par exemple $result['context'], déclencherait l'erreur susmentionnée.

Pour résoudre l'erreur et lire les valeurs du tableau, modifiez le codez comme suit :

$result = json_decode($data, true);
Copier après la connexion

En passant true comme deuxième argument, json_decode() créera un tableau à la place, et vous pourrez accéder à son élément "context" comme prévu :

$context = $result['context'];
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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal