2014-01-09 47 views
0

我目前正在尝试使用API​​,但我发现真的很难从api中将数据提取到我的网页中。如何从数组中获取数据[API/JSON]

我试过使用json_decode($,true),它工作正常,但我只是不能提取一些数据。

就像在这个例子中,你会如何得到这个名字?

{"id":12345678,"name":"MyAwesomeLeagueName","profileIconId":593,"summonerLevel":30,"revisionDate":1389164617000} 

我用于从其他人获取数据,但无法真正让它与这样的类型工作。另外,如果有人有一些很好的JSON - > PHP教程,我真的很感激。

+3

有没有教程。没有什么可教的。 JSON是一种字符串格式,可解码为PHP数据结构。本教程仅仅是“查看PHP数组/对象文档”。 'var_dump($ r)'会告诉你你需要知道的一切。 'echo $ decoded_stuff ['name']'是你所需要的。 –

+1

我根本不确定你的问题,但是你应该可以做'$ r ['name']'因为你在json_decode中设置了assoc = true'。 – th3falc0n

+1

你可以查看此主题。 http://stackoverflow.com/questions/15043981/how-to-access-json-decoded-array-in-php – Dinesh

回答

3

在该示例中,您只需引用$ r ['name']例如

echo $r['name']; 

JSON字符串解码后,做你的阵列上的var_dump,它会告诉你的内容以及如何访问。

要获得所有带有一定的魔法等级按你的榜样,你会通过阵列需要循环和测试特定键的值:

$r = json_decode($r, true); 

//loop through $r 
foreach ($r['champions'] as $key => $value) { 
    if ($value['magicRank'] != 8) { 
    //if magicRankis not 8, ignore and move on to the next entry 
    continue; 
    } 
    //magicRank is 8, do something 
    echo $value['name'] . " has magic rank of 8<br />"; 
} 
+0

我将如何能够全部回应它们?到目前为止感谢 – kristian

+0

查看更新的答案为一个非常简单的例子。这会回应:“有魔法排名8”。顺便说一句,你的pastebin例子是无效的JSON - 你在字符串的末尾缺少“]}”。 – gazareth

+0

我知道有些不见了,我只是拿了一小部分,因为原来是很大的。 :)所以要理解,$值,是我如何“捕捉”它在我的数组?在这个示例中, – kristian