J'ai le JSON suivant:
$jsonurl = "http://www.monopolycitystreets.com/player/stats?nickname=$username&page=1";
$json = file_get_contents($jsonurl,0,null, $obj2 = json_decode($json);
foreach ( $obj2->streets as $street )
{
//Here I want to print the "-91607259\/387798111" for each street, please help
//echo $street[0]; gives "Fatal error: Cannot use object of type stdClass as array"
//echo $street gives "Catchable fatal error: Object of class stdClass could not be converted to string"
echo '<th>'.$street->name.'</th><td>'."M ".number_format($street->value, 3, ',', ',').'</td>';
}
4 Réponses :
Je ne peux pas essayer maintenant, mais si vous faites un: Vous devriez pouvoir voir exactement comment accéder à vos informations. P> P>
Aussi avec Firebug, vous avez un «Explorateur» JSON vraiment joli où vous pouvez voir et naviguer dans toute la structure et les données.
Considérant cette pièce de code: vous obtiendrez: p> ce qui signifie que vous pouvez faire boucle dans les rues comme celle-ci. : p> avec ceci, pour chaque qui vous obtiendra: p> mais les propriétés de votre objet ont des noms assez "étranges"; Ce que signifie que vous ne pouvez pas faire cela: p> qui donne une erreur ni que: p> qui donne également Heureusement, vous pouvez utiliser $ rue code>, vous obtiendrez la clé correspondante dans $ ID code> - et les données dans $ rue code>. p>
Ou vous pouvez y accéder directement à une manière: p>
Votre $ obj2-> rue code> est un objet, ce qui signifie que vous ne pouvez pas utiliser l'accès Array-Syntaxe; Ceci explique l'erreur " fatale: impossible d'utiliser l'objet de type stdclass comme tableau code>" si vous essayez d'utiliser ceci: p> Erreur d'analyse: erreur de syntaxe, inattendue '-', attente t_string ou t_variable ou "{" ou "$ ' code> p> erreur d'analyse: erreur de syntaxe, inattendue t_const_encapsed_string, attendant t_string ou t_variable ou " {'ou' $ '' code> p> {} code> en sorte de "protéger" le nom de vos clés et que tout fonctionne ;-)
(je ne trouve pas la page dans le manuel qui explique cette syntaxe ni donner son nom ... Si quelqu'un sache ...) em> p> p> p> P>
foreach ($ obj2-> rues comme $ id => $ rue) était la pièce manquante. Merci pour votre aide et votre explication!
J'imagine que la chose la plus simple à faire est de décoder dans des tableaux associatifs au lieu d'objets STDCLASS
$obj2 = json_decode( $json, true );
foreach ( $obj2['streets'] as $coords => $street )
{
echo $coords;
}
Utilisation de tableaux associatifs "JSON_Decode ($ JSON, vrai);" m'a donné cette erreur "AVERTISSEMENT: argument invalide fourni pour Foreach ()" mais le "foreach ($ obj2-> rues comme $ coords => $ rue)" a travaillé comme un charme! : D Merci beaucoup! Aussi grâce à Gumbo pour le code Modifier. Stackoverflow est vraiment génial!
HAHA, j'ai suggéré de passer à des tableaux associatifs, puis j'ai immédiatement oublié d'utiliser cette syntaxe dans mon extrait. Réponse mise à jour. Merci pour la prise;)
Un moyen simple d'extraire des données de alors vous pouvez simplement accéder aux membres de json string code> est d'utiliser jsone_decode () code> fonction. Par exemple: $ décoded_data code> à l'aide de -> code> opérateur: p> echo "$decoded_data->nickname \n";
echo "$decoded_data->level \n";