2011-09-28 65 views
2

我試圖在HTTP響應中返回數組。我想要返回數組作爲JSON對象。我在做echo json_encode($arr),但我沒有收到任何迴應。如何在響應中返回數組

更新:我運行的PHP版本沒有json_encode方法。 json_encode是在PHP 5.2中引入的。所以我想問題是你將如何返回一個數組而不使用json_encode?

 $arr = array(); 
    foreach($_POST['ids'] as $id) 
    { 
     $arr[$id] = $id; 
    } 
    echo json_encode($arr); 

    return; 

這裏是我的數組的內容:

array(18) { 
    [156795]=> 
    string(6) "156795" 
    [156800]=> 
    string(6) "156800" 
    [4292]=> 
    string(4) "4292" 
    [796053]=> 
    string(6) "796053" 
    [660520]=> 
    string(6) "660520" 
... 
+1

向我們展示你的實際代碼。我們無法根據您的簡短描述進行調試。 – webbiedave

+1

JSON絕對是正確的方法。但這裏沒有任何問題。顯示您的JavaScript和完整的服務器端方法。 –

+0

我用更多的代碼更新了問題。 –

回答

3

發回JSON時,請務必設置正確的MIME類型:

header('Content-Type: application/json'); 
echo json_encode($arr); 
0

JSON編碼應該沒有問題做。當我將數據抽入數組時,它工作正常。你可以發佈一些代碼來構建數組嗎?你使用的是什麼版本的PHP?

2

json_encode()需要PHP 5.2.0或以上版本。確保你的主機沒有用--disable-json標誌編譯PHP。這兩項都可以使用phpinfo()函數進行檢查。您迄今發佈的代碼對我來說工作得很好。

+0

看起來像這樣。我有PHP版本5.1.4運行。爲了返回一個數組,下一個最好的事情是什麼? –

+0

你可以使用'json_encode()'替代 - 例如http://www.mike-griffiths.co.uk/php-json_encode-alternative/ – Tak

+0

對不起,我是新來的PHP,但如何返回PHP 5.2之前的數組?你會使用像序列化的東西? –

0

PLZ使用JSON驗證程序確保UR JSON是正確的

看我這樣做&它工作得很好

$arr = array(); 
$i=0; 
    while($i<10) 
    { 
     $arr[$i] = $i; 
     $i++; 
    } 
    echo json_encode($arr); 

    return;