【问题标题】:Json returns null valueJson 返回空值
【发布时间】:2015-01-29 14:58:44
【问题描述】:

我想从 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));

它返回空值。然后我尝试使用 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);

不幸的是,它也没有用。

有什么帮助吗?

【问题讨论】:

  • 您能否发布您的 json 字符串,看起来它是一个无效的 json。尝试使用jsonlint.com 来验证您的 json 字符串。
  • 查看您的网站后,它会在 json 字符串之前显示一个 ?(。删除这 2 个字符。
  • @StijnBernards 这对 JSONP 至关重要。您需要从 URL 中删除 JSONP 回调,因为 PHP 不需要它,也不能使用它。 /?cmd=getTrims&year=2015
  • @BenFortune 今天我学到了。 :)
  • @BenFortune 谢谢本,它有效 :)

标签: php json curl file-get-contents


【解决方案1】:

首先试试这个:

    $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】:

    该 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 进行解析。

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      相关资源
      最近更新 更多