如何在PHP中实现JSON结构


How to achieve that JSON structure in PHP

对于自动完成插件,我需要生成一个json结构,如下所示:

{"标签":[{"标签":"比萨"},{"标签":"罗马"},{"标签":"米兰"},{"标签":"佛罗伦萨"},{"标签":"纽约"},{"标签":"巴黎"},{"标签":"柏林"},{"标签":"伦敦"},{"标签":"马德里"}]}

我尝试了以下php代码:

$tags = array();
while (($row = $statement -> fetch(PDO::FETCH_ASSOC)) !== false) {
    $tags[] = array('tag' => $row['text']);
}
echo json_encode($tags);

但只生成

[{"标签":"比萨"},{"标签":"罗马"},{"标签":"米兰"},{"标签":"佛罗伦萨"},{"标签":"纽约"},{"标签":"巴黎"},{"标签":"柏林"},{"标签":"伦敦"},{"标签":"马德里"}]

所以包装"标签"是缺失的-我如何实现正确?

谢谢!

$tags = array();
while (($row = $statement -> fetch(PDO::FETCH_ASSOC)) !== false) {
    $tags[] = array('tag' => $row['text']);
}
echo json_encode(array('tags'=> $tags));

你必须设置你的标签数组在其他数组的关键'tags' .

return json_encode(array('tags' => $statement->fetchAll()));

(当然您需要在查询中使用select text as tag。并将PDO::FETCH_ASSOC设置为默认获取选项,以使您的代码有意义和DRY)