可以/应该压缩JSON格式


Can/Should JSON format be condensed?

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尽可能压缩和缩小。