我有以下代码:
$instance = new riotapi($srg_lower);
$grab_data = $instance->getSummonerByName($summoner_nm);
$decode_data = json_decode($grab_data);
$grab_id = $decode_data->{'id'};
$grab_runes = $instance->getSummoner($grab_id,'runes');
$decode_runes = json_decode($grab_runes);
$grab_names = $decode_runes->{'name'};
注意:getSummonerByName
需要一个名称,getSummoner
使用该ID。
编辑:以下是$decode_runes
的示例:http://pastebin.com/6h2TX9t1
编辑:以下是$grab_runes
的示例:http://pastebin.com/V3MNtbFA
我从所有内容中获取使用var_dump()
的值,但当我转到var_dump()
$grab_names
时,我得到了返回值NULL
。
我明白这个问题可能会让我盯着我,但我看不到它^^;所以我很感激能够指出它的人!
答案 0 :(得分:0)
通常这意味着你有一个非法的角色。例如,使用øæå将导致json_decode返回null。
Returns the value encoded in json in appropriate PHP type. Values true, false and null (case-insensitive) are returned as TRUE, FALSE and NULL respectively. NULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit.
答案 1 :(得分:0)
感谢您添加$grab_runes
转储。通过获取字符串并将其粘贴到JSONLint中,您可以非常清楚地了解JSON结构。从该图中可以清楚地看出,JSON所代表的根对象上没有name
属性。
唯一的根属性是summonerId
和pages
。
所以你试图访问它的JSON结构中不存在你的问题name
,所以当你解码它并尝试访问它时,你当然会得到一个空值。 / p>
看起来有一个name
属性嵌套了一点。
因此,访问它将是这样的:
$decode_runes->pages[i]->name
i
是您感兴趣的page
的索引(数据中有几个)。