Json返回null值

时间:2015-01-29 14:58:44

标签: php json curl file-get-contents

我想从Carquery API获取Json数据。但是我的代码都没有用。

首先,我尝试使用curl获取数据。这是我的代码

    $loginUrl = 'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL,$loginUrl);
    $result=curl_exec($ch);
    curl_close($ch);
    var_dump(json_decode($result));

它返回null。然后我尝试使用file_get_content。这是我的代码:

$json = file_get_contents('http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015');
$obj = json_decode($json);
var_dump($obj);

不幸的是它也没有用。

请帮忙吗?

2 个答案:

答案 0 :(得分:0)

首先尝试这个:

    $loginUrl = 'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL,$loginUrl);
    $result=curl_exec($ch);
if($result === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    var_dump(json_decode($result));
}
    curl_close($ch);

所以你可以在curl请求上看到错误。

和第二件事网址: 'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015'

你确定必须是2(2)?(问号)吗?

答案 1 :(得分:0)

从该API返回的json数据不正确,我尝试使用jsonlint.com进行检查。

如果从

中删除了回调部分
  

'http://www.carqueryapi.com/api/0.3/?callback=?&cmd=getTrims&year=2015';

进入

  

'http://www.carqueryapi.com/api/0.3/?cmd=getTrims&year=2015';

它将生成正确的json,可以使用file_get_content()或curl进行解析。