我目前通过exec()使用curl的安装版本,而不是使用curl_exec()来查询API(linkedin)。我的通话返回了很好的结果,但编码方式很奇怪,无法将其转换回json。
这是我的代码:
exec('curl "'.$url.'/v1/people/~?format=json" -H "Authorization: Bearer '.$token.'"', $data);
我得到的响应是(我用xxxx替换了敏感数据):
array(7){[0] =>字符串(1)“ {” [1] =>字符串(22)“”名字“:” xxxx“,” [2] =>字符串(67)“”标题“: “ xxxx;”,“ [3] =>字符串(21)”“ id”:“ xxxx”,“ [4] =>字符串(24)”“ lastName”:“ xxxx”,“ [5] =>字符串(148)“” siteStandardProfileRequest“:{” url“:” https://www.linkedin.com/profile/view?id=xxxx&authType=name&authToken=xxxx&trk=api xxxx xxxx *“}” [6] =>字符串( 1)“}”}
我已经尝试过了,json_encode(json_decode($data))
但是它什么都没有改变...如何将输出转换为JSON对象?
为什么将答案发布后就找到答案了。无论如何,以防万一有人遇到相同的问题,我用以下方法解决了:
$data = implode('', $data); $data = json_decode($data);