sql查询返回以下简单结构的许多行:
"name",id
我需要以JSON格式提供它。我认为正确的格式是一个简单结构的数组,如下所示。尽管我不确定是否有一个不那么冗长的结构会更可取。例如,我是否应该以某种方式避免重复名称/id字段名称以减小大小?
[
{
"name": "greg",
"id": 13
},
{
"name": "greg",
"id": 12
},
{
"name": "greg",
"id": 11
}
]
以下是我用来生成json:的php
$rows = array();
while($r = $result->fetch_assoc())
{
$rows[] = $r;
}
echo json_encode($rows, JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
您可以以2d数组的形式提供它,但我认为这没有多大区别。
实现这一点的简单示例:
$rows = array();
while($r = $result->fetch_assoc())
{
$rows[$r["name"]][] = $r["id"];
}
echo json_encode($rows);
这将为您提供一个按名称分组的数组。
此外,由于此输出已发送到浏览器,因此应该对其进行缩小。
用户不需要(至少不需要)看到实际的JSON报告,它被浏览器用作JavaScript变量。
正因为如此,提供一个经过美化的版本没有任何好处,而且,你会增加内容长度并使用更多的带宽。
底线:服务器JSON尽可能压缩和缩小。