Json 不会在 php 中响应我的数组

Json wont response my array in php

我正在尝试从我的数据库中获取多行,然后使用 json 对它们进行编码,以便我可以在我的 Android 应用程序中访问它们。我已经成功地对一个对象进行了编码,但是我找不到对数组进行相同编码的方法。我的代码如下所示:

if ($tag == 'friends') {

    $id = $_POST['id'];

    $friends = $db->getMyFriends($id);
    if ($friends != false) {
        // friends found          
        $result[] = array();
            while($row = mysql_fetch_assoc($friends)){
                $response[ "error"] = FALSE;
                $result[] = array(
                $response["friends"]["unique_id"] = $row["unique_id"],
                $response["friends"]["name"] = $row["name"],
                $response["friends"]["email"] = $row["email"]);
            }

        echo json_encode($response);
    }

来自 getMyFriends($id) 的代码我已经测试过并且工作正常。它 returns :

$结果=mysql_fetch_array($结果);
return$结果;

使用rest客户端传递参数时: 标签: 朋友 编号:$id

这是我得到的 json 响应: { "tag": "myfriends", "error": 错误 } , 但没有实际的数据库数据。

如果有人知道我做错了什么,我将不胜感激,我已经浏览互联网几个小时了。

我试过了,它成功了。

if($tag=='friends'){ 
$id = $_REQUEST['id'];
$friends = $db->getMyFriends($id);
if ($friends != false) {
// friends found          
$result[] = array();
while($row = mysql_fetch_assoc($friends)){
    $response[ "error"] = FALSE;
    $result[] = array(
    $response["friends"]["unique_id"] = $row["id"],
    $response["friends"]["name"] = $row["name"],
    $response["friends"]["email"] = $row["email"]
    );
}

echo json_encode($result);
}
}

如果 getMyFriends 已有 $result = mysql_fetch_array($result);您无需再次获取。

您可以简单地:

$friends = $db->getMyFriends($id);
echo json_encode($friends);

但这只会 return 一个朋友,如果你想从 getMyFriends 中删除所有 $result = mysql_fetch_array($result); 和 return 纯 mysql_result,然后执行类似的操作:

 $result = array();
 while($row = mysql_fetch_assoc($friends)){
    array_push($result,$row);
 }
 echo json_encode($result);