簡體   English   中英

正確格式的JSON響應

[英]JSON response in correct format

我正在通過PHP查詢數據庫中名為“用戶”的表。

$result = mysql_query("SELECT name, lastname FROM $tableName");         

    if (mysql_num_rows($result) > 0) 
    {
        while($row = mysql_fetch_row($result)) {
            echo json_encode( $row );
        }
    }
    else 
    { 
        echo json_encode( "No rows found!" );
    }

我在JSON響應中返回此表,如下所示。

["John","Smith"]["John","Wayne"]

但是我想要的格式如下。

{ "users" : [
  {
    "name":"John",
    "lastname":"Smith",
  },
  {
    "name":"John",
    "lastname":"Wayne",
  }
]}

有沒有一種方法可以查詢數據並將其與表名(如上述格式)一起返回?

如果您這樣做,該怎么辦。 將行放入數組並進行編碼。

$result = mysql_query("SELECT name, lastname FROM $tableName");         

    if (mysql_num_rows($result) > 0) 
    {
        $users = array();
        while($row = mysql_fetch_row($result)) {
            $users['users'][] = $row;
        }
        echo json_encode( $users );

    }
    else 
    { 
        echo json_encode( "No rows found!" );
    }

使用它代替您當前的代碼:

<?php
$userInfo = array("users" => array());
$result = mysql_query("SELECT name, lastname FROM $tableName");
if (mysql_num_rows($result) > 0) 
{
    while($row = mysql_fetch_row($result)) {
        $userInfo["users"][] = array("name" => $row[0], "lastname" => $row[1]);
    }
    echo json_encode($userInfo);
}
else 
{ 
    echo json_encode( "No rows found!" );
}

編輯

我只是看到您希望使用表名和列名來獲取某種程度上的動態結果,如果您希望這樣做,則應使用mysqli_fetch_assoc()而不是mysqli_fetch_row()這樣:

<?php
$result = mysqli_query($con, "SELECT name, lastname FROM $tableName");
$tableData = array($tableName => array());

if (mysqli_num_rows($result) > 0) 
{
    while($row = mysqli_fetch_assoc($result)) {
        $tableData[$tableName][] = $row;
    }
    echo json_encode($tableData);
}
else 
{ 
    echo json_encode( "No rows found!" );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM