Maison  >  Article  >  développement back-end  >  Pourquoi json_decode() lance-t-il « Impossible d'utiliser un objet de type stdClass comme tableau » ?

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-17 08:06:03932parcourir

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);

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);

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'];

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