2011-07-04 50 views
3

我想从这块JSON的“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']; 

但我得到的只有文字“阵列”

我做了什么错?

+0

'$ decode ['results'] [0] ['screenshotUrls']'可能是一个数组而不是一个字符串。做一个'var_dump($ decode);'来看看它的样子。 – PeeHaa

+0

看看[var_dump()](http://php.net/var_dump)。 –

回答

0

由于$decode['results']['0']['screenshotUrls']是一个数组,如果你想只是一个字符串(比如,用逗号分隔),你可以使用

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

这将迭代数组,并返回所有URL的逗号分隔字符串。

3

尝试

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

如果获得PHP“阵”输出这意味着你要回应一个实际的数组(或字符串“阵” ...)。这意味着你需要获得一个特定的索引值。

0

做一个var_dump($decode['results']['0']['screenshotUrls'])。你会发现['screenshotUrls']实际上是一个数组,其中包含一个或多个URL(因此其名称中包含复数“urls”)。

0

到目前为止,您的代码没有任何问题,但$decode['results'][0]['screenshotUrls']是一组包含截图的所有URL。要通过每一个individualy,你需要做的:

forearch ($decode['results'][0]['screenshotUrls'] as $url) { 
    // Do stuff here 
}