我有一个卷曲设置,如下所示,以访问json对象
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://sitename.com");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookiefilename.txt');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host:sitename.com'));
$output = curl_exec($ch);
curl_close($ch);
$output = json_decode($output);
echo $output->property;
curl_setopt($ch, CURLOPT_URL, "http://sitename.com");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookiefilename.txt');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host:sitename.com'));
$output = curl_exec($ch);
curl_close($ch);
$output = json_decode($output);
echo $output->property;
我收到错误'试图访问非对象的属性'。
答案 0 :(得分:1)
您尝试访问对象的属性的唯一时间是:
echo $output->property;
所以做var_dump($output)
以查看上一行之前和之后发生的事情:
var_dump($output)
$output = json_decode($output);
var_dump($output)
答案 1 :(得分:0)
你还没有说过你尝试或研究过的内容。
最可能的事情似乎是网站没有返回有效的JSON,因此json_decode
正在返回NULL
。
或者,也许返回的是有效的JSON,但不是对象(例如,true
或false
,尽管在顶层,JSON包应始终是对象或数组)。