我正在尝试从API检索数组,但每次尝试后都返回一个空数组。
这是我从api获取数据的编码:
<?php
$array=array("name"=>"name1");
$url = "http://getsjobs.esy.es/registerapi.php?".http_build_query($array);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$json = curl_exec($ch);
curl_close($ch);
$data = json_decode($json,true);
if (is_array(json_decode($data )) || is_object(json_decode($data)))
{ echo 'array exists'; }
else { echo 'Not an array'; }
?>
这是我的api代码
<?php
if(isset($_GET['Array'])) {
$array = $_GET['Array'];
header('Content-type: application/json');
}
?>
即使我使用json_encode($array)
。它返回空数组。我可以接收单值或单数组元素,但不能发送和接收整个
来自json的数组。
我无法找到任何相关的帖子。任何链接或建议都会有所帮助
答案 0 :(得分:0)
我的PHP很生疏,但我认为这个问题是因为你的API正在寻找一个名为“Array”的参数,但是在你的调用块中没有它实际发送一个名为“Array”的GET参数。
你的代码看起来有点不完整,所以也许我误解了一些东西。
答案 1 :(得分:0)
看这里:你要解码两次。
ArrayBuffer
简单地说:
$data = json_decode($json,true);
if (is_array(json_decode($data )) || is_object(json_decode($data)))
{ echo 'array exists'; }
else { echo 'Not an array'; }
如果仍然不起作用,请查看$data = json_decode($json,true);
if (is_array($data ))
{ echo 'array exists'; }
else { echo 'Not an array'; }
返回的内容。
尝试检查您的echo json_last_error_msg();
是否也是有效的json。检查$json
返回的内容在此处是否有效:http://jsonformatter.curiousconcept.com/