【发布时间】:2018-12-04 02:52:50
【问题描述】:
我正在尝试使用 PHP 创建 Web 服务。我的数据来自 SQL Server 数据库。我要使用的查询输出来自内部联接。同一天有多行(日期列)。这些稍后会根据 json 输出中的日期进行分组。
我对使用 PHP 的了解不多,我喜欢学习任何可以从 SQL 数据创建嵌套 JSON 输出的方法,如下所示。
[
{
"date": "2018-11-09 18:30:00",
"details": [{
"ServerName":"Server1",
"ScheduleStart":"2018-11-09 08:00:00",
"ScheduleEnd": "2018-11-09 11:00:00"
},
{
"ServerName":"Server2",
"ScheduleStart":"2018-11-09 18:00:00",
"ScheduleEnd": "2018-11-09 21:00:00"
},
{
"ServerName":"Server3",
"ScheduleStart":"2018-11-09 21:00:00",
"ScheduleEnd": "2018-11-10 00:00:00"
}
],
"total":3,
"summary":[{
"ServerName": "Server1",
"Status": "Success"
},
{
"ServerName": "Server2",
"Status": "Failed"
},
{
"ServerName": "Server3",
"Status": "Scheduled"
}
]
},
{
"date": "2018-11-10 18:30:00",
"details": [{
"ServerName":"Server3",
"ScheduleStart":"2018-11-09 21:00:00",
"ScheduleEnd": "2018-11-10 00:00:00"
},
{
"ServerName":"Server4",
"ScheduleStart":"2018-11-10 02:00:00",
"ScheduleEnd": "2018-11-10 05:00:00"
}
],
"total":2,
"summary":[{
"ServerName": "Server3",
"Status": "Success"
},
{
"ServerName": "Server4",
"Status": "Scheduled"
}
]
}
]
请指导我如何开始。我已经探索了几种方法,但没有什么能让我有足够的信心来创建类似的输出。
json_encode 给了我如下的普通 json。但是,我实际上想要上面已经显示的嵌套输出。
[
{
"date": "2018-05-27 00:00:00.000",
"ServerName": "Server1",
"ScheduleStart": "2018-05-27 03:00:00.000",
"ScheduleEnd": "2018-05-27 06:00:00.000",
"Status": "Scheduled"
},
{
"date": "2018-05-27 00:00:00.000",
"ServerName": "Server2",
"ScheduleStart": "2018-05-27 21:30:00.000",
"ScheduleEnd": "2018-05-28 00:30:00.000",
"Status": "Scheduled"
}
]
我使用 SQL 2014,它不允许来自 SQL 的嵌套 JSON 输出,在这种情况下会容易得多。
或者,我相信,可以多次调用数据库来收集和创建数组,这看起来不是一个好习惯。
【问题讨论】:
-
在php中寻找json_encode()函数
标签: php json sql-server