Bir PHP JSON Nesnesinde verileri işleme


85

JSON'da Twitter Arama API'sinden trend verileri.

Dosyayı kullanarak kapmak:

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

Bu nesneden gelen verilerle nasıl çalışırım. Dizi olarak mı? Yalnızca [ad] değerlerinden gerçekten veri çıkarılması gerekir.

JSON nesnesi şunları içerir:

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
)
php  json 

Yanıtlar:


146

Bunun gibi bir şey mi ifade etmeye çalışıyorsun?

<?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";
}

$ trendler ["isim"] veya $ trendler [] ["isim"] gibi döngü yapmadan isimlerin listesini almanın başka yolları var mı?
Min Soe

35

Eğer kullanırsanız json_decode($string, true), hiçbir nesne olsun, ama bir birleştirici veya sayı endeksli dizi olarak her şey olur. PHP tarafından sağlanan stdObject, kendi işlevselliğinizle genişletilemeyen genel özelliklere sahip aptal bir kapsayıcıdan başka bir şey olmadığı için kullanımı daha kolay.

$array = json_decode($string, true);

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

8

Onu tanımladığınız bir nesne gibi kullanın. yani

$trends = $json_output->trends;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.