0

一个 sql 查询返回以下简单结构的许多行:

“姓名”,身份证

我需要以 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);
4

1 回答 1

1

您可以以二维数组的形式提供它,但我认为这并没有太大的区别。

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

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

这会给你一个按名称分组的数组。

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

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

正因为如此,提供美化版本没有任何好处,另外,您会增加内容长度并使用更多带宽。

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

于 2012-08-25T13:08:56.147 回答