Maison > développement back-end > tutoriel php > Comment puis-je décoder correctement JSON dans un tableau à l'aide de « json_decode() » ?

Comment puis-je décoder correctement JSON dans un tableau à l'aide de « json_decode() » ?

Linda Hamilton
Libérer: 2024-12-29 17:04:17
original
567 Les gens l'ont consulté

How Can I Properly Decode JSON into an Array Using `json_decode()`?

Gérer l'énigme : créer des tableaux avec json_decode()

Rencontrer l'erreur "Erreur fatale : impossible d'utiliser un objet de type stdClass comme tableau " en essayant de décoder JSON dans un tableau signifie un malentendu courant. json_decode() crée par défaut un objet, mais des tableaux peuvent être obtenus en spécifiant le deuxième argument comme vrai.

Revisite du code :

Le code fourni ci-dessous illustre le approche problématique :

$json_string = 'http://www.example.com/jsondata.json';

$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata);
print_r($obj['Result']);
Copier après la connexion

Le Solution :

Pour résoudre le problème, nous devons simplement fournir true comme deuxième argument à json_decode(), spécifiant notre préférence pour un tableau associatif plutôt que pour un objet. Le code correct serait :

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

Accès aux valeurs du tableau :

Une fois que vous avez votre tableau associatif, vous pouvez accéder à ses valeurs à l'aide de crochets :

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

Tableaux de clés entières :

Si, cependant, vous préférez les clés entières plutôt que les noms de propriétés, vous pouvez y parvenir en utilisant array_values() :

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

Approche objet :

Si vous préférez conserver la structure de l'objet, vous pouvez toujours accéder à la propriété souhaitée à l'aide de l'opérateur double flèche :

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