是否可以压缩JSON格式?

时间:2012-08-25 13:05:32

标签: php json

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);

1 个答案:

答案 0 :(得分:1)

你可以以二维阵列的形式提供它,但我认为它没有多大区别。

实现这一目标的简单例子:

$rows = array();
while($r = $result->fetch_assoc()) 
{
  $rows[$r["name"]][] = $r["id"];
}
echo json_encode($rows);

这将为您提供按名称分组的数组。

此外,看到此输出发送到浏览器,它应该缩小。

用户没有(至少,不需要)查看实际的JSON报告,他的浏览器将其用作JavaScript变量。

正因为如此,提供一个美化版本没有任何好处,而且,你的内容长度膨胀并使用更多的带宽。

底线:服务器JSON尽可能压缩和缩小。