我正在构建一个基于第三方API的应用程序,该API以JSON格式(或应该)提供数据。
代码段:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.test,com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"X-API-KEY: *",
"X-API-SECRET: *"
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
var_dump()命令表明$ response变量是一个字符串,而不是JSON。
我已经浏览了各种堆栈交换帖子,了解如何将字符串清理成JSON,striplashes,删除不可见的十六进制字符等,但似乎没有任何工作。
当我将其粘贴到JSON验证工具中时,它表示一切正常。
2个问题:
谢谢!
答案 0 :(得分:0)
是的,HTTP响应总是字符串。你必须明确地对它们进行类型转换:
$response = json_decode($response);
var_dump($response);
如果您希望将其作为数组而不是对象,请将第二个参数设置为true
。
$response = json_decode($response, true);
var_dump($response);