2011-08-27 3 views
0

Je suis en train de récupérer des données à partir d'un objet JSON qui ressemble à ceci:Comment obtenir des données à partir d'un objet JSON?

stdClass Object 
(
[query] => stdClass Object 
    (
     [results] => stdClass Object 
      (
       [quote] => Array 
        (
         [0] => stdClass Object 
          (
           [foo] => bar 
          ) 
         [1] => stdClass Object 
          (
           [foo] => blah 
          ) 

J'ai créé l'objet comme ceci:

$json = curl_exec($session); 
$stock_data = json_decode($json); 

J'ai lu plusieurs messages sur la façon de faire (This one was extremely useful) mais je suis toujours coincé. Je sais que j'ai besoin de parcourir les données, mais je ne sais pas exactement à quoi ressembleront les déclarations foreach (c'est-à-dire la profondeur d'elles, pour ainsi dire). Je me rends compte que cela devrait être relativement simple, mais je ne peux pas envelopper ma tête pour le moment (c'est ce que l'évacuation vous fait). Toute aide serait très appréciée!

EDIT: Après avoir réfléchi à un certain temps, ce que je suis venu avec:

foreach($stock_data->query->results as $quote) { 
      foreach ($quote as $entry) { 
       print $entry->{'foo'} ; 
      } 
     } 

Ce sera ensuite imprimer avec succès à la fois bar et bla

+1

Quel niveau voulez-vous parcourir? Ce sera fondamentalement un mélange de tableaux PHP et d'objets, par exemple. 'echo $ object-> query-> results-> quote [0] -> foo' –

+0

Je voulais parcourir chaque objet entre guillemets. J'ai réussi à le comprendre cependant! – thomascirca

Répondre

2
$quotes = $stock_data->query->results->quote; 
foreach ($quotes as $q) 
{ 
    echo $q->foo; 
} 
+0

Bien! Je suis venu avec ma propre solution, mais les deux semblent être extrêmement similaires. – thomascirca

1
foreach($stock_data->query->results as $quote) { 
     foreach ($quote as $entry) { 
      print $entry->{'foo'} ; 
     } 
    } 
Questions connexes