我正在尝试使用php解析cURL对json的影响:
$url = 'https://www.toto.com/api/v1/ads/?apikey=titi&code_postal='.$code_postal.'&type_de_bois='.$type_bois;
$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_HTTPGET, true);
curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Accept: application/json'
));
$result = curl_exec($cURL);
curl_close($cURL);
var_dump(json_decode($result, true));
echo json_decode($result);
这让我觉得,这似乎是json:
[{ “ID”: “6918”, “NOM”: “X”, “code_postal”: “88120”, “威乐”: “镇”, “说明”: “测试”, “标识”:” test.png”, “URL”: “测试”, “电话”:真正}, [{ “ID”: “6919”, “NOM”: “Y”, “code_postal”: “88121”, “威乐”: “town1”, “描述”: “测试”, “标识”:“test.png ”, “URL”: “测试”, “电话”:真正}, [{ “ID”: “6920”, “NOM”: “Z”, “code_postal”: “88122”, “威乐”: “town2”, “描述”: “测试”, “标识”:“test.png ”, “URL”: “测试”, “电话”:真}]
int(1)1
我的问题是: - 为什么在没有回声或打印的情况下打印阵列? - 为什么json_decode不能正常工作或为什么只有一个值(“1”)?
非常感谢您的回答。
答案 0 :(得分:3)
您忘记使用CURLOPT_RETURNTRANSFER
选项。因此,curl_exec()
打印了响应,而不是将其返回到$result
,而$result
只包含TRUE
返回的值curl_exec
,表示它已成功。添加:
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
答案 1 :(得分:0)
如果在使用一次json_decode()后,json数据似乎被编码了两次,结果就是一个json字符串。
请检查:
echo json_decode(json_decode($result));
如果它不起作用,你能否提供
的回复echo $result;
查看PHP未解析的服务器响应。