[英]How to correctly format JSON using PHP
我正在尝试使用PHP创建RESTful API。 我无法以惯常的方式对其进行格式化。 希望能得到一些指导。 谢谢。
这是当前的JSON输出:
[
{
"boardID": "12345",
"MQ9": "673627",
"MQ131": "87565",
"MQ135": "67887",
"longitude": "51.504425",
"latitude": "-0.1291608",
"time": "13:32",
"date": "2018-03-14"
},
这就是我想要实现的目标:
{
"data": [
{
"boardID": "12345",
"MQ9": "673627",
"MQ131": "87565",
"MQ135": "67887",
"longitude": "51.504425",
"latitude": "-0.1291608",
"time": "13:32",
"date": "2018-03-14"
},
这是我的PHP:
<?php
require 'connect.php';
if(!$con){
die('Could not connect: '.mysqli_error());
}
$result = mysqli_query($con, "SELECT * FROM airQual");
while($row = mysqli_fetch_assoc($result)
{
$output[]=$row;
}
echo(json_encode($output, JSON_PRETTY_PRINT));
mysqli_close($con);
?>
您可以通过以下两种方法之一执行此操作,但最简单的方法是将输出添加到另一个数组中:
$data = array('data' => $output);
echo(json_encode($data, JSON_PRETTY_PRINT));
例如:
$output = array('foo'=>1,'bar'=>2,'glorp'=>3);
$data = array("data" => $output);
echo(json_encode($data, JSON_PRETTY_PRINT));
退货
{
"data": {
"foo": 1,
"bar": 2,
"glorp": 3
}
}
您也可以按照其他人的建议,通过以下方式将输出添加到另一个数组:
$output['data'] = array('foo'=>1,'bar'=>2,'glorp'=>3);
echo(json_encode($output, JSON_PRETTY_PRINT));
这将为您带来与上述相同的回报。
您的代码中有错别字:
while($row = mysqli_fetch_assoc($result) // missing closing )
mysqli_error()
需要连接:
die('Could not connect: '.mysqli_error($con));
尝试这个:
<?php
require 'connect.php';
if(!$con){
die('Could not connect');
}
$result = mysqli_query($con, "SELECT * FROM airQual");
while($row = mysqli_fetch_assoc($result))
{
$output['data'][]=$row;
}
echo(json_encode($output, JSON_PRETTY_PRINT));
mysqli_close($con);
?>
在创建数组时,输出正确。 如果需要对象,请创建一个对象!
做类似的事情;
$myOuput = new stdClass;
$myOuput->data = $output;
json_encode($myOutput);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.