Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens l'erreur « Impossible d'utiliser un objet de type stdClass comme tableau » lors du décodage de JSON ?

Pourquoi est-ce que j'obtiens l'erreur « Impossible d'utiliser un objet de type stdClass comme tableau » lors du décodage de JSON ?

Barbara Streisand
Libérer: 2024-12-17 11:42:25
original
635 Les gens l'ont consulté

Why am I Getting the

Comprendre l'erreur : "Impossible d'utiliser un objet de type stdClass comme tableau"

Lorsque vous essayez de décoder une chaîne JSON, vous pouvez rencontrer le erreur "Erreur fatale : impossible d'utiliser un objet de type stdClass comme tableau." Cette erreur se produit lorsque vous essayez de traiter la sortie de la fonction json_decode() comme un tableau au lieu d'un objet.

La solution : utiliser la fonction json_decode() avec un vrai deuxième argument

La fonction json_decode() fournit un deuxième argument facultatif qui vous permet de spécifier si vous souhaitez que la sortie soit renvoyée sous forme de tableau ou d'objet. Par défaut, json_decode() renvoie un objet.

Pour décoder la chaîne JSON en tableau, nous devons définir le deuxième argument sur true. Voici le code corrigé :

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

Accès aux clés du tableau

Une fois la chaîne JSON décodée en tableau, vous pouvez accéder à ses éléments à l'aide des clés du tableau. Par exemple, si votre tableau contient une clé appelée « Résultat », vous pouvez y accéder comme ceci :

print_r($result['Result']);
Copier après la connexion

Méthodes alternatives

En plus d'utiliser json_decode () avec le vrai deuxième argument, il existe d'autres méthodes pour convertir un objet JSON en un array:

  • Using array_values(json_decode($jsondata, true)): Cette approche renvoie un tableau avec des clés entières au lieu de noms de propriétés.
  • Accéder à l'objet en tant qu'objet : Vous pouvez accéder directement aux propriétés de l'objet renvoyées par json_decode() comme suit :
print_r($obj->Result);
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!

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