2016-08-18 155 views
-1

我正在嘗試從一個API的數組,但每次它返回每次嘗試後空數組。JSON解碼返回空數組

這是我的編碼是從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

這是什麼: $陣列= [ '數組[電話]'=> 123456, '數組[名]'=> '名稱1', ]。 –

+0

我沒有得到,我創建了一系列的項目 –

+0

刪除了錯字錯誤 –

回答

0

我的PHP是生鏽的,但這個問題在我看來是因爲您的API是尋找所謂的「陣列」參數,但無處在你調用塊它實際上發送GET參數稱爲「陣列」。

您的代碼看起來有點不完整的,所以也許我誤解的東西。

0

看這裏:你解碼兩次。

$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。檢查什麼echo $json;返回此處是有效的:http://jsonformatter.curiousconcept.com/