Помогите расшифровке JSON - PullRequest
3 голосов
/ 04 июля 2011

Я пытаюсь получить строку "screenshotUrls" из этого фрагмента json:

$request_url = 'http://itunes.apple.com/search?term=ibooks&country=us&entity=software&limit=1';
$json = file_get_contents($request_url);
$decode = json_decode($json, true);

echo $decode['results'][0]['screenshotUrls'];

Но я получаю только текст "Массив"

Что я сделал не так?

Ответы [ 4 ]

3 голосов
/ 04 июля 2011

Попробуйте

var_dump($decode['results'][0]['screenshotUrls']);

Если вы получаете PHP-вывод 'Array', это означает, что вы пытаетесь отобразить реальный массив (или строку 'Array' ...).Это означает, что вам нужно получить конкретное значение индекса.

0 голосов
/ 04 июля 2011

Так как $decode['results']['0']['screenshotUrls'] является массивом, если вы хотите просто строку (скажем, разделенную запятыми), вы можете использовать

echo implode(",", $decode['results']['0']['screenshotUrls']);

Это будет перебирать массив и возвращать через запятуюстрока всех URL.

0 голосов
/ 04 июля 2011

Пока в вашем коде нет ничего плохого, но $decode['results'][0]['screenshotUrls'] - это массив всех URL-адресов скриншотов.Чтобы просмотреть каждую личность, вам нужно сделать:

forearch ($decode['results'][0]['screenshotUrls'] as $url) {
    // Do stuff here
}
0 голосов
/ 04 июля 2011

Do var_dump($decode['results']['0']['screenshotUrls']).Вы обнаружите, что ['screenshotUrls'] на самом деле является массивом, содержащим один или несколько URL-адресов (отсюда и множественное число «URL» в его имени).

...