2011-08-27 202 views
0

我正在尝试从一个JSON对象,看起来像这样的数据:如何从JSON对象获取数据?

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

我创建像这样的对象:

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

我一直在阅读关于如何做到这几个职位(This one was extremely useful)但我仍然卡住。我知道我需要对数据进行迭代,但我不确定foreach语句的样子(比如说深度)。我意识到这应该是相对简单的,但目前我无法围绕它(这就是疏散对你的影响)。任何帮助将非常感激!

编辑:想着它过了一段时间,这是我想出了:

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

这一操作将成功打印两栏和等等

+1

哪个级别你想迭代?它基本上是PHP数组和对象的混合,例如'echo $ object-> query-> results-> quote [0] - > foo' –

+0

我想遍历报价中的每个对象。我设法弄清楚了! – thomascirca

回答

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

不错!我想出了我自己的解决方案,但两者看起来非常相似。 – thomascirca

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