2008-11-04 9 views
85

Données de tendances de l'API de recherche Twitter dans JSON.Traitement des données dans un objet PHP JSON

Saisissant 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 puis-je travailler avec les données de cet objet. En tant que tableau? Seulement vraiment besoin d'extraire des données à partir des valeurs [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 
) 

Répondre

147

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"; 
} 
+0

C'est grand. Merci. –

+18

point de rep facile, hein? =) – Seiti

+3

exactement ce dont j'avais besoin, aussi! Merci! –

8

Utilisez-le comme s'il s'agissait d'un objet que vous avez défini. à savoir

$trends = $json_output->trends; 
35

Si vous utilisez json_decode($string, true), vous obtiendrez pas des objets, mais tout comme un associatif ou un numéro tableau indexé. Bien plus facile à gérer, car stdObject fourni par PHP n'est rien d'autre qu'un conteneur muet avec des propriétés publiques, qui ne peuvent pas être étendues avec vos propres fonctionnalités.

$array = json_decode($string, true); 

echo $array['trends'][0]['name']; 
-2

La manière 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']); 
}