почему json_decode не работает для некоторого кода? - PullRequest
0 голосов
/ 06 июля 2010

для этого ответа json api я могу проанализировать с помощью json_decode:

 $string = '{"name": "Google",
     "permalink": "google",
     "homepage_url": "http://google.com",
     "blog_url": "http://googleblog.blogspot.com",
     "blog_feed_url": "http://googleblog.blogspot.com/feeds/posts/default?alt=rss",
     "twitter_username": "google",
     "category_code": "search",
     "number_of_employees": 20000,
     "founded_year": 1998,
     "founded_month": 9,
     "founded_day": 7,// bla bla.....}';

$obj=json_decode($string);
echo $obj->number_of_employees."<br>";// 20000
echo $obj->founded_year; //1998

Я получаю результат выше, но получаю пустой результат ниже единицы:

$string =  '{"offices":
  [{"description": "Google Headquarters",
    "address1": "1600 Amphitheatre Parkway",
    "address2": "",
    "zip_code": "",
    "city": "Mountain View",
    "state_code": "CA",
    "country_code": "USA",//blah blah }]//blah blah...}';

$obj=json_decode($string);
echo $obj->address1."<br>";// ""
echo $obj->city; //""

Я знаю, что address1 снова находится внутри другого массива или цикла, но не знаю, как его получить ... какие-либо идеи ??

1 Ответ

3 голосов
/ 06 июля 2010

Вам понадобится что-то вроде:

foreach($obj->offices as $office) {
    echo $office->address1; // The first would be '1600 Amphitheatre Parkway'
}

Для просмотра содержимого вашего декодированного json выполните что-то вроде следующего:

<code>echo "<pre>";
print_r($obj);
echo "
";

В вашемна случай, если это даст вам:

stdClass Object
(
    [offices] => Array
        (
            [0] => stdClass Object
                (
                    [description] => Google Headquarters
                    [address1] => 1600 Amphitheatre Parkway
                    [address2] => 
                    [zip_code] => 
                    [city] => Mountain View
                    [state_code] => CA
                    [country_code] => USA
                )

        )

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...