如何获得正确的json?

时间:2019-06-06 02:24:35

标签: php arrays json jsonencoder

我不知道php和JSON,我想要下面的结果

如何在json上添加数组employeelist

 {
"employeeList": [
    {
        "name": "Gretchen Rodriquez",
        "email": "gretchenrodriquez@trasola.com"

    },
    {
        "name": "Sharon Harris",
        "email": "sharonharris@trasola.com"

    },
    {
        "name": "Serrano Haynes",
        "email": "serranohaynes@trasola.com"

    }
               ]
   }

我的php代码

$sql="SELECT * FROM tbl_retro_example";
$result=mysqli_query($conn, $sql); 
$response=array();
while($row=mysqli_fetch_array($result))
 { 
 array_push($response,array("name"=>$row["name"],"email"=>$row["email"]));
  } 
 echo json_encode($response,JSON_FORCE_OBJECT);

我得到如下响应

{
 "0": {
"name": "jugl",
"email": "jual@gmail.com"
 },
 "1": {
"name": "gond",
"email": "gond@gmail.com"
 },
 "2": {
"name": "kaik",
"email": "kaik@gmail.com"
}
 }

我如何获得正确的结果?

1 个答案:

答案 0 :(得分:1)

我认为您离您需要的地方不太远。 如果您希望在employeeList键下显示结果,则可以更改将结果压入数组的方式。另外,使用json_enconde时,您可以告诉PHP您要转换的数组。为此,我将转换您的

array_push($response,array("name"=>$row["name"],"email"=>$row["email"]));

进入

$response['employeeList'][] = ["name"=>$row["name"],"email"=>$row["email"]];

而且,您在哪里:

json_encode($response,JSON_FORCE_OBJECT)

你可以做

json_encode($response);

为了获得更好的输出结果来检查新的json,我将使用print_r而不是echo

试试看,让我知道如何找到它:)

注意::我一直在最新的PHP版本下工作,因此我倾向于大量使用[]来声明我的数组。我注意到您在代码示例中使用了array(),所以不确定是否使用的是旧版PHP。如果是这种情况,并且您的版本尚未识别[],请随时将其替换为数组声明!