使用PHP从JSON数组中检索信息

时间:2012-02-17 09:21:44

标签: php json

我有这个公共JSON https://raw.github.com/currencybot/open-exchange-rates/master/latest.json,我需要从中提取数据,现在我尝试过这样的事情:

$input = file_get_contents("https://raw.github.com/currencybot/open-exchange-rates/master/latest.json");

$json = json_decode($input);

echo $json[rates]->EUR;

但是我得到一个空白页面,有什么建议吗?谢谢 !! STE

4 个答案:

答案 0 :(得分:6)

json_decode要么返回一个对象,要么返回一个数组(当你使用第二个参数时)。你正试图同时使用它们。

尝试:

$json = json_decode($input);    
echo $json->rates->EUR;

OR

$json = json_decode($input, true);
echo $json['rates']['EUR'];

关于空白页面,请在脚本顶部添加以下内容:

error_reporting(E_ALL);
init_set('display_errors', true);

500错误表示您无法使用file_get_contents解析该网址。

查看here了解详情。

答案 1 :(得分:0)

该链接看起来像以https开头,而file_get_contents无法处理SSL。我的建议是使用curl

答案 2 :(得分:0)

阅读json_decode的帮助...没有它返回的第二个参数,而对象不是数组...

要么:

$json = json_decode($input);
echo $json->rates->EUR;

$json = json_decode($input,true);
echo $json['rates']['EUR'];

答案 3 :(得分:0)

尝试:

$arr = json_decode($input, true);

var_dump($arr);
echo $arr['rates']['EUR'];

进一步阅读: http://de.php.net/manual/de/function.json-encode.php

对于使用cURL和SSL的示例,请阅读: http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/