我希望能够将JSON编码为特定格式,以便它可以与我创建的另一个脚本一起使用。我能够使用PHP将其编码为JSON,但需要能够将这些编码的JSON集推送到一个名为'阵列。
目前我正在接受这个
{
"ann_date":"14\/12\/2017",
"ann_title":"Return Dates",
"ann_content":"Have a good break. The course timetable resumes on Wednesday 3rd January 2018",
"tutor":"John Smith"
}
从此代码中
class AnnData {
public $ann_date = "";
public $ann_title = "";
public $ann_content = "";
public $tutor = "";
}
while($row = mysqli_fetch_array($result)) {
$ann_date = $row['ann_date'];
$ann_title = $row['ann_title'];
$ann_content = $row['ann_content'];
$tutor = $row['tutor'];
$annData = new AnnData();
$annData->ann_date = $ann_date;
$annData->ann_title = $ann_title;
$annData->ann_content = $ann_content;
$annData->tutor = $tutor;
$annQ = json_encode($annData);
但需要它看起来像这样
{
"announcements":[{
"ann_date":"14\/12\/2017",
"ann_title":"Return Dates",
"ann_content":"Have a good break. The course timetable resumes on Wednesday 3rd January 2018",
"tutor":"John Smith"}]
}
答案 0 :(得分:1)
您可以声明一个关联数组,然后对其进行编码:
$annData = new AnnData();
...
$out = array('announcements' => array($annData));
$outJson = json_encode($out);
答案 1 :(得分:0)
您可以通过从数据库中获取正确的列(仅需要4个)并一次获取所有行来简化此操作:
$annQ = json_encode([
'announcements' => mysqli_fetch_all($result, MYSQLI_ASSOC),
]);
这将取代您发布的所有代码。
关联数组将作为对象存储在字符串中,因此如果您不打算在其他任何地方使用它,则不需要该类。