我有一个json文件(相当大,请注意,同一文件的xml版本超过19000行长),它像这样:
object(stdClass)#1 (1) {
["result"]=> object(stdClass)#2 (13) {
["items"]=> array(1628) {
[0]=> object(stdClass)#27 (18) {
["image_url"]=> string(95) "http://media.steampowered.com/apps/440/icons/c_bat.d037d6a40ec30ab4aa009387d476dca889b6f7dc.png"
}
[1]=> object(stdClass)#29 (18) {
["image_url"]=> string(98) "http://media.steampowered.com/apps/440/icons/w_bottle.859ddb315a2748f04bcc211aa7a04f2c926e6169.png"
}
}
}
}
我想获得'items'数组中每个对象的图像url,我试图这样做:
<?PHP
$api = "http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?key=yoink&language=en_US&format=json";
$json = file_get_contents($api);
$schema = json_decode($json);
print count($schema->result->items);
foreach($schema->results->items as $item) {
print "{$item->image_url}";
}
?>
但是当我检查打印出来的页面时,我得到这个:
1628 Warning: Invalid argument supplied for foreach() in - on line 13
现在我知道这个数组肯定不是空的,因为count返回1628,而且它也不是空的,因为我之前得到了一个var_dump,如上所示。谁能告诉我我哪里出错了?
编辑:我需要学习如何阅读。请投票结束这个问题!打印错误,更改:
foreach($schema->results->items as $item) {
^-- here
:
foreach($schema->result->items as $item) {
打字错误。不是results
,是result
。
foreach($schema->result->items as $item) {
print "{$item->image_url}";
}