J'essaie de décoder une chaîne JSON dans un tableau mais j'obtiens l'erreur suivante.
Erreur fatale: impossible d'utiliser un objet de type stdClass comme tableau dans C: \ wamp \ www \ temp \ asklaila.php sur la ligne 6
Voici le code:
<?php
$json_string = 'http://www.domain.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata);
print_r($obj['Result']);
?>
$ob->Result
place.Réponses:
Selon la documentation , vous devez spécifier si vous voulez un tableau associatif au lieu d'un objet de
json_decode
, ce serait le code:la source
essaye ça
la source
Il s'agit d'une contribution tardive, mais il existe un cas valable pour le casting
json_decode
avec(array)
.Considérer ce qui suit:
Si
$jsondata
est jamais retourné sous forme de chaîne vide (comme dans mon expérience, il l'est souvent),json_decode
sera renvoyéNULL
, entraînant l'erreur Avertissement: argument non valide fourni pour foreach () sur la ligne 3 . Vous pouvez ajouter une ligne de code if / then ou un opérateur ternaire, mais IMO c'est plus propre de changer simplement la ligne 2 en ...... à moins que vous
json_decode
n'utilisiez des millions de grands tableaux à la fois, auquel cas, comme le souligne @ TCB13, les performances pourraient être négativement affectées.la source
Juste au cas où vous travaillez sur php moins de 5.2, vous pouvez utiliser ce recours.
http://techblog.willshouse.com/2009/06/12/using-json_encode-and-json_decode-in-php4/
http://mike.teczno.com/JSON/JSON.phps
la source
Selon la fonction de documentation PHP
json_decode
a un paramètre nommé assoc qui convertit les objets retournés en tableaux associatifsÉtant donné que le paramètre assoc est
FALSE
par défaut, vous devez définir cette valeur surTRUE
afin de récupérer un tableau.Examinez le code ci-dessous pour un exemple d'implication:
qui génère:
la source
Cela le transformera également en tableau:
la source
json_decode($object, true);
letrue
fait exactement la même chose, en interne beaucoup plus rapidement.json_decode
conversion + est 45% plus rapide que l'exécution des deux versions dejson_decode
. D'un autre côté, les deux sont si rapides qu'à moins d'avoir littéralement besoin de milliers de décodages, la différence est négligeable.json_decode
prend en charge le deuxième argument, lorsqu'il est défini surTRUE
il retournera unArray
au lieu destdClass Object
. Consultez la page Manual de lajson_decode
fonction pour voir tous les arguments pris en charge et ses détails.Par exemple, essayez ceci:
la source
Donc, si vous voulez un tableau, vous pouvez passer le deuxième argument en tant que «vrai» dans la
json_decode
fonction.la source
J'espère que cela t'aidera
Utiliser la fonction de décodage Json
Boucle sur un tableau JSON en php
Résultat : systèmes informatiques (réseaux)
la source
en PHP json_decode convertit les données json en tableau PHP associé
Pour Ex:
$php-array= json_decode($json-data, true); print_r($php-array);
la source
Veuillez essayer ceci
la source
Essayez comme ceci:
la source