2012-07-29 34 views
-1

我是PHP新手,我不明白爲什麼JSON字符串中有一個額外的字ARRAY。JSON輸出之前出現的「Array」

赫雷什JSON串的輸出:

Array{"Users":[{"UserID":"1","FirstName":"lalawee","Email":"12345","Password":null},{"UserID":"2","FirstName":"shadowblade721","Email":"12345","Password":null},{"UserID":"3","FirstName":"dingdang","Email":"12345","Password":null},{"UserID":"4","FirstName":"solidsnake0328","Email":"12345","Password":null}],"success":1} 

這是PHP文件:

<?php 
/* 
* Following code will list all the Users 
*/ 
// array for JSON response 
$response = array(); 
// include db connect class 
require_once __DIR__ . '/db_connect.php'; 
// connecting to db 
$db = new DB_CONNECT(); 
// get all Users from Users table 
$result = mysql_query("SELECT * FROM Users") or die(mysql_error()); 
// check for empty result 
if (mysql_num_rows($result) > 0) { 
// looping through all results 
// Users node 
$response["Users"] = array(); 

while ($row = mysql_fetch_array($result)) { 
    // temp user array 
    $user[] = array(); 
    $user["UserID"] = $row["UserID"]; 
    $user["FirstName"] = $row["FirstName"]; 
    $user["Email"] = $row["Email"]; 
    $user["Password"] = $row["Password"]; 

    // push single User into final response array 
    array_push($response["Users"], $user); 
} 
// success 
$response["success"] = 1; 
echo $response; 

// echoing JSON response 
echo json_encode($response); 
} 
else { 
// no Users found 
$response["success"] = 0; 
$response["message"] = "No Users found"; 

// echo no users JSON 
echo json_encode($response); 
} 
?> 
+1

請嘗試使用有用的非尖叫標題爲您的線程。通過用PHP標記您的問題,我們知道您需要PHP的幫助。如果你有一個內容豐富的標題,你可能會得到更多的答案。 – 2012-07-29 06:35:20

回答

4

刪除

echo $response; 

正在打印的字陣列。如果您嘗試回顯數組,它將顯示單詞「數組」,而不是打印數組本身的內容。使用print_r()函數來顯示數組的內容。

print_r($response); 
2

隨着使用該__to_string魔術方法類例外,echoprint只會輸出變量的值的字符串解釋。數字類型(整數和浮點數),字符串和(我認爲)布爾值具有直接的字符串表示形式。任何其他變量(數組,對象,資源)將不輸出任何內容,它們的變量類型,或者引發致命錯誤。

對於數組和對象,print_r()將遍歷每個成員/屬性並試圖將其轉換爲字符串(print_r是print_recursive的縮寫)。所以print_r($response)會給你完整的數組。

請記住,通常整個陣列僅用於調試輸出。將一個數組的php字符串版本傳遞給javascript可能是無用的。

+0

+1爲徹底 – 2012-07-29 07:25:32