我有这个公共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
答案 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/