これが私が持っているJSONArrayです:
[{"items_id":"13","total":"1"}, {"items_id":"216","total":"0"},{"items_id":"16","total":"1"}]
各オブジェクトに 3 つ以上のプロパティ (属性?) がある場合があります。しかし、ここでは原則を示しているだけです。Java では、「合計」を取得するだけで済みます。「items_id」は必要ありません。
これがPHPでの私のMySQLクエリであるため、表示されると思います。
$count_query_result=mysql_query("
SELECT items.items_id,
COUNT(ratings.item_id) AS total
FROM `items`
LEFT JOIN ratings ON (ratings.item_id = items.items_id)
WHERE items.cat_id = '{$cat_id}' AND items.spam < 5
GROUP BY items_id ORDER BY TRIM(LEADING 'The ' FROM items.item) ASC;");
これが私の JSON 出力です (上記の 3 つのクエリのうちの 1 つだけを表示しています)。
print(json_encode(array($output,$output2,$output3)));
JSON でエンコードされた 3 つのプロパティのみが必要です (3 つの出力変数のそれぞれに 1 つ)。プロパティ「total」、「rate」、および「item」が必要です。
私の質問は、不要な items_id プロパティを削除できますか? それとも私もする必要がありますか?(クエリを機能させるために SQL でそれが必要であることはわかっていますが、JSONArray でそれを削除するにはどうすればよいでしょうか?)
数百または数千のアイテムを含むリストがある場合、必要な JSON プロパティのみを出力することでスペース (および時間) を半分に節約できると考えています。この考えは正しいですか?
編集:要求に応じてさらにコード:
while($row=mysql_fetch_assoc($count_query_result))
$output[]=$row;
while($row=mysql_fetch_assoc($average_query_result))
$output2[]=$row;
while($row=mysql_fetch_assoc($items_query_result))
$output3[]=$row;
print(json_encode(array($output,$output2,$output3)));
mysql_close();