Traitement de données dans un objet JSON de PHP

les Tendances des données de la Recherche Twitter API JSON.

saisir le fichier en utilisant:

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

comment travailler avec les données de cet objet. Comme un tableau? Il suffit d'extraire des données des valeurs de [nom].

objet JSON contient:

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
demandé sur Peter Bailey 2008-11-04 23:50:56

4 réponses

vous voulez dire quelque chose comme ça?

<?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
répondu Peter Bailey 2008-11-04 20:59:07

si vous utilisez json_decode($string, true) , vous n'obtiendrez aucun objet, mais tout comme un tableau associatif ou indexé par nombre. Beaucoup plus facile à gérer, car le stdObject fourni par PHP n'est rien d'autre qu'un conteneur muet avec des propriétés publiques, qui ne peut pas être étendu avec votre propre fonctionnalité.

$array = json_decode($string, true);

echo $array['trends'][0]['name'];
35
répondu Sven 2010-11-03 12:58:47

utilisez-le comme un objet que vous avez défini. c'est à dire

$trends = $json_output->trends;
8
répondu Zak 2008-11-04 21:03:52

Le propre serait:

$jsonurl = 'http://search.twitter.com/trends.json';
$json = file_get_contents($jsonurl, 0, null, null);
$json_output = json_decode($json, true);
$trends = $json_output['trends'];

foreach ($trends as $trend) {
    your_func($trend['name']);
}
-2
répondu DanAlexson90 2014-07-31 12:46:06