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);
答案 0 :(得分:1)
你可以以二维阵列的形式提供它,但我认为它没有多大区别。
实现这一目标的简单例子:
$rows = array();
while($r = $result->fetch_assoc())
{
$rows[$r["name"]][] = $r["id"];
}
echo json_encode($rows);
这将为您提供按名称分组的数组。
此外,看到此输出发送到浏览器,它应该缩小。
用户没有(至少,不需要)查看实际的JSON报告,他的浏览器将其用作JavaScript变量。
正因为如此,提供一个美化版本没有任何好处,而且,你的内容长度膨胀并使用更多的带宽。
底线:服务器JSON尽可能压缩和缩小。