首页 > 解决方案 > 如何获得正确的json?

问题描述

我不知道 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"
}
 }

我怎样才能得到正确的结果?

标签: phparraysjsonjsonencoder

解决方案


我认为你离你需要去的地方并不远。如果您希望将结果放在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 版本。如果是这种情况并且[]您的版本尚未识别,请随意将其替换为您的数组声明!


推荐阅读