Вообще этот проект я делал для диплома , который еще кстати не защитил :) Так для начала опишу серверную часть .
Имеем БД 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!