php - 如何获得正确的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"
}
}
我怎样才能得到正确的结果?
解决方案
我认为你离你需要去的地方并不远。如果您希望将结果放在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 版本。如果是这种情况并且[]
您的版本尚未识别,请随意将其替换为您的数组声明!
推荐阅读
- javascript - 如何在 Nodejs 中将 Rmd 文件转换为 Json 格式?
- reverse-proxy - 如何给traefik添加一个简单的路由规则
- python - 具有不同字段和登录页面的多个用户模型?
- javascript - 如何从 tensorflow.js 下载模型和权重
- excel - 在 Excel VBA 中,将工作簿精确定位在表单控件上
- javascript - 在 Fusionchart JSON 格式中推送数组
- javascript - 使用 FileReader() 但发布时结果不在表单正文中
- c++ - std::initializer_list 构造函数和“支撑初始化”的问题
- c# - C# LINQ 投影到一个类
- json - 尝试使用对象反序列化 JSON 字典