it-swarm.com.de

Umgang mit Daten in einem PHP JSON-Objekt

Trends Daten von Twitter Search API in JSON.

Datei greifen mit:

$jsonurl = "http://search.Twitter.com/trends.json";
$json = file_get_contents($jsonurl,0,null,null);
$json_output = json_decode($json);

Wie arbeite ich mit Daten aus diesem Objekt. Als Array? Müssen nur wirklich Daten aus den [Name] -Werten extrahieren.

JSON-Objekt enthält:

stdClass Object
(
    [trends] => Array
        (
            [0] => stdClass Object
                (
                    [name] => Vote
                    [url] => http://search.Twitter.com/search?q=Vote
                )

            [1] => stdClass Object
                (
                    [name] => Halloween
                    [url] => http://search.Twitter.com/search?q=Halloween
                )

            [2] => stdClass Object
                (
                    [name] => Starbucks
                    [url] => http://search.Twitter.com/search?q=Starbucks
                )

            [3] => stdClass Object
                (
                    [name] => #flylady
                    [url] => http://search.Twitter.com/search?q=%23flylady
                )

            [4] => stdClass Object
                (
                    [name] => #votereport
                    [url] => http://search.Twitter.com/search?q=%23votereport
                )

            [5] => stdClass Object
                (
                    [name] => Election Day
                    [url] => http://search.Twitter.com/search?q=%22Election+Day%22
                )

            [6] => stdClass Object
                (
                    [name] => #PubCon
                    [url] => http://search.Twitter.com/search?q=%23PubCon
                )

            [7] => stdClass Object
                (
                    [name] => #defrag08
                    [url] => http://search.Twitter.com/search?q=%23defrag08
                )

            [8] => stdClass Object
                (
                    [name] => Melbourne Cup
                    [url] => http://search.Twitter.com/search?q=%22Melbourne+Cup%22
                )

            [9] => stdClass Object
                (
                    [name] => Cheney
                    [url] => http://search.Twitter.com/search?q=Cheney
                )

        )

    [as_of] => Mon, 03 Nov 2008 21:49:36 +0000
)
85
Martin Wright

Du meinst so etwas?

<?php

$jsonurl = "http://search.Twitter.com/trends.json";
$json = file_get_contents($jsonurl,0,null,null);
$json_output = json_decode($json);

foreach ( $json_output->trends as $trend )
{
    echo "{$trend->name}\n";
}
147
Peter Bailey

Wenn Sie json_decode($string, true) verwenden, erhalten Sie keine Objekte, sondern alles als assoziatives oder nummeriertes Array. Viel einfacher zu handhaben, da das von PHP) bereitgestellte stdObject nichts anderes als ein dummer Container mit öffentlichen Eigenschaften ist, der nicht mit Ihrer eigenen Funktionalität erweitert werden kann.

$array = json_decode($string, true);

echo $array['trends'][0]['name'];
35
Sven

Verwenden Sie es einfach so, als wäre es ein von Ihnen definiertes Objekt. d.h.

$trends = $json_output->trends;
8
Zak