Вообще этот проект я делал для диплома , который еще кстати не защитил :) Так для начала опишу серверную часть .
Имеем БД MySQL с таблицей categories внутри , чтобы получить содержимое таблицы и закодировать в JSON выполним следующее
Имеем БД MySQL с таблицей categories внутри , чтобы получить содержимое таблицы и закодировать в JSON выполним следующее
function getCategories(){ if(isset($_GET['format']) && intval($_GET['num'])) { $format = strtolower($_GET['format']); $num = intval($_GET['num']); mysql_query('SET NAMES \'UTF8\''); $result = mysql_query('SELECT * FROM categories ORDER BY `category_id` DESC LIMIT ' . $num) or die('MySQL Error.'); if($format == 'json') { $сategories = array(); while($category = mysql_fetch_array($result, MYSQL_ASSOC)) { $categories[] = array('category'=>$category);
} $output = json_encode($categories);
echo $output; } } }
if($_REQUEST['function']=='getCategories') getCategories();
То есть чтобы сделать запрос и получить ответ в JSON в браузере делаем следующее :
http://superquiz.zz.mu/api.php?format=json&num=10&function=getCategories
Так теперь перейдем к клиентской части. Я делал общий класс API у которого будут методы для получения категорий , списка тестов , статистики и т.д . Опишу метод получения категорий.
public class API { private HttpClient client; private HttpGet httpGet; private BufferedReader in; private JSONObject mainJsonObject, innerJsonObject; private ArrayList<Categories> categoriesArr = new ArrayList<Categories>(); private static final String TAG_CATEGORY = "category"; private static final String TAG_CATEGORY_ID = "category_id"; private static final String TAG_CATEGORY_NAME = "category_name"; public API() { client = new DefaultHttpClient(); } public ArrayList getCategoryQuiz() { httpGet = new HttpGet(
"http://superquiz.zz.mu/api.php? format=json&num=10&function=getCategories"); try { HttpResponse response = client.execute(httpGet); in = new BufferedReader(new InputStreamReader(response.getEntity()
.getContent())); StringBuffer sb = new StringBuffer(""); String line = ""; while ((line = in.readLine()) != null) { sb.append(line + "\n"); } in.close(); String result = sb.toString(); JSONArray jsonMainArr = new JSONArray(result); for (int i = 0; i < jsonMainArr.length(); i++) { mainJsonObject = jsonMainArr.getJSONObject(i); innerJsonObject = mainJsonObject.getJSONObject(TAG_CATEGORY); int id = Integer.parseInt(innerJsonObject.getString(TAG_CATEGORY_ID)); String name = innerJsonObject.getString(TAG_CATEGORY_NAME); categoriesArr.add(new Categories(id, name));
} } catch (Exception e) { e.printStackTrace(); }
return categoriesArr; } Теперь разберем что мы здесь наделали. Делаем GET запрос и получаем JSON ответ записывая его в StringBuilder. Затем формируем JSONArray из нашего ответа. После этого "растаскиваем" наш JSONArray на объекты и добавляем его в ArrayList из категорий. Кому не понятно как создать класс категорий выкладываю.
public class Categories { private int categoryId; private String categoryName; public Categories(int categoryId, String categoryName) { this.categoryId = categoryId; this.categoryName = categoryName; }
public int getCategoryId() { return categoryId; } public void setCategoryId(int categoryId) { this.categoryId = categoryId; } public String getCategoryName() { return categoryName; } public void setCategoryName(String categoryName) { this.categoryName = categoryName; } }
Чтобы потом воспользоваться данным методом который мы написали делаем следующее.
API api = new API();
categoriesArr = api.getCateroiesQuiz();
CASINO DINNU - JT Hub
ОтветитьУдалитьCASINO DINNU - JT Hub 군산 출장안마 has 5 table games 안양 출장안마 for 양주 출장안마 you 서귀포 출장마사지 to try with your next party. Play 의정부 출장안마 slots, blackjack, roulette and more!