使用php从json url获取数据?

时间:2014-07-01 18:22:17

标签: php json api url

这是一个json api:https://jobs.github.com/positions.json?description=java&page=1 我想从这个网址获取数据。

<?php 
$url = file_get_contents('https://jobs.github.com/positions.json?description=java&page=1');
var_dump(json_decode($url,true));   ?>

此代码返回null 我还检查了json验证器中的url:http://jsonformatter.curiousconcept.com/ json是有效的,但是我无法从这个url获取数据请帮帮我...

1 个答案:

答案 0 :(得分:2)

尝试使用此脚本来确定问题所在。如果没有安装JSON模块(请参阅@julian注释),您可以尝试使用JSON的PHP实现:http://pear.php.net/pepr/pepr-proposal-show.php?id=198

if (! extension_loaded('json')) {
    echo 'Module JSON not available!';
    exit();
}

$url = file_get_contents('https://jobs.github.com/positions.json?description=java&page=1');
$data = json_decode($url,true);

switch (json_last_error()) {
    case JSON_ERROR_NONE:
        echo ' - No errors';
    break;
    case JSON_ERROR_DEPTH:
        echo ' - Maximum stack depth exceeded';
    break;
    case JSON_ERROR_STATE_MISMATCH:
        echo ' - Underflow or the modes mismatch';
    break;
    case JSON_ERROR_CTRL_CHAR:
        echo ' - Unexpected control character found';
    break;
    case JSON_ERROR_SYNTAX:
        echo ' - Syntax error, malformed JSON';
    break;
    case JSON_ERROR_UTF8:
        echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
    break;
    default:
        echo ' - Unknown error';
    break;
}