用PHP打印出JSON

时间:2011-01-14 21:22:49

标签: php json

屏幕上没有显示,下面这个有效的代码是什么?我知道收到的数据中有一个名为“text”的JSON参数,但不知道如何将其打印出来?

    <?php
    $url='http://twitter.com/statuses/user_timeline/twostepmedia.json'; //rss link for the twitter timeline
    //print_r(get_data($url)); //dumps the content, you can manipulate as you wish to
    $obj = json_decode($data);
    print $obj->{'text'};
    /* gets the data from a URL */

    function get_data($url)
    {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
    }
    ?>

3 个答案:

答案 0 :(得分:5)

这应该有效:

$obj = json_decode(get_data($url));
$text = $obj[0]->text;

当你遇到像这样的问题时,尝试像var_dump($obj)这样的东西是个好主意。在这样做之后,它立即变得清晰$obj[0]->text就是您所追求的目标。

@ benhowdle89评论:

foreach ($obj as $item) {
    $text = $item->text;
}

答案 1 :(得分:1)

您应该将get_data返回的值赋给变量并将其传递给json_decode,即:。

<?php
    $url='http://twitter.com/statuses/user_timeline/twostepmedia.json'; //rss link for the twitter timeline
    //print_r(get_data($url)); //dumps the content, you can manipulate as you wish to
    $data = get_data($url);
    $obj = json_decode($data);
    print $obj->text;
    /* gets the data from a URL */

    function get_data($url)
    {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
    }
    ?>

答案 2 :(得分:0)

$data未设置,您不需要花括号。