【问题标题】:How to get data from a JSON object?如何从 JSON 对象中获取数据?
【发布时间】:2011-11-05 05:40:54
【问题描述】:

我正在尝试从如下所示的 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'} ;
            }
       }

这将成功打印 bar 和 blah

【问题讨论】:

  • 您要遍历哪个级别?它基本上是 PHP 数组和对象的混合,例如echo $object->query->results->quote[0]->foo
  • 我想遍历引用中的每个对象。不过我设法弄明白了!

标签: php json


【解决方案1】:
foreach( $stock_data->query->results as $quote) {
       foreach ($quote as $entry) {
            print $entry->{'foo'} ;
        }
   }

【讨论】:

    【解决方案2】:
    $quotes = $stock_data->query->results->quote;
    foreach ($quotes as $q)
    {
      echo $q->foo;
    }
    

    【讨论】:

    • 不错!我想出了自己的解决方案,但两者看起来非常相似。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    相关资源
    最近更新 更多