Вот JSONArray у меня есть:
[{"items_id":"13","total":"1"}, {"items_id":"216","total":"0"},{"items_id":"16","total":"1"}]
Иногда каждый объект имеет более двух свойств (атрибутов?). Но я просто показываю принцип здесь. В Java мне нужно всего лишь захватить «итого». Мне не нужно «items_id».
Я предполагаю, что это проявляется, потому что здесь мой MySQL-запрос в PHP:
$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 (я только показал один из трех запросов выше):
print(json_encode(array($output,$output2,$output3)));
Мне нужно только три свойства, закодированные в JSON (по одному в каждой из трех выходных переменных). Я хочу, чтобы свойства «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();
в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();
в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();
в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();
Используйте JSONObject для синтаксического анализа строки. Просто поставьте строку в качестве параметра в конструкторе JSONObject.
jObject = new JSONObject(myString);
После того, как вы выберете все переменные из JSONObject.
Для стороны php:
Используйте json_decode end json_encode для переключения между json и смешанной переменной. Когда у вас есть смешанная переменная, удалите ненужное вам содержимое и переведите его обратно в json.
Отмените ненужные значения, затем выведите json
Я не думаю, что вам это нужно в вашем SQL-запросе. Если вам нужны данные из базы данных только в контексте запроса, вам не нужно ее SELECT
. Попробуйте сделать только:
SELECT COUNT(*) FROM ...