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
468 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!

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