0

SQLクエリは、次の単純な構造の多くの行を返します。

「名前」、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);
4

1 に答える 1

1

2 次元配列の形で提供することもできますが、大きな違いはないと思います。

それを実現する簡単な例:

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

これにより、名前でグループ化された配列が得られます。

また、この出力はブラウザに送信されるため、縮小する必要があります。

ユーザーは実際の JSON レポートを表示することはありません (少なくとも、表示する必要はありません)。JSON レポートはブラウザーで JavaScript 変数として使用されます。

そのため、きれいなバージョンを提供してもメリットはありません。さらに、コンテンツの長さが肥大化し、より多くの帯域幅を使用することになります.

結論:サーバーの JSON を可能な限り圧縮および縮小します。

于 2012-08-25T13:08:56.147 に答える