Привет всем, у меня есть этот выход php.
//fetching all the rows from the query
$row = $stmt->fetchAll();
//output to json
die(json_encode($row));
[{"u_id":"8","id":"8","name":"test1","location_long":"10.01475","location_lati":"53.57823","description":"loo\nlol","date":"2014-11-21","time":"18:00:00","date_created":"2014-11-20","date_updated":"0000-00-00"},
{"u_id":"8","id":"9","name":"test9","location_long":"10.01475","location_lati":"53.57823","description":"test9\n","date":"2014-11-21","time":"19:00:00","date_created":"2014-11-20","date_updated":"0000-00-00"},
{"u_id":"8","id":"10","name":"test10","location_long":"10.01475","location_lati":"53.57823","description":"lol","date":"2014-11-22","time":"19:00:00","date_created":"2014-11-20","date_updated":"0000-00-00"},
{"u_id":"8","id":"11","name":"lol","location_long":"10.01475","location_lati":"53.57823","description":"","date":"2014-11-24","time":"18:00:00","date_created":"2014-11-20","date_updated":"0000-00-00"}]
Теперь я хочу получить каждый элемент с его значением в свой элемент списка
Код:
JSONObject json = jsonParser.makeHttpRequest(
EVENTS_URL, "POST", params);
JSONArray jsonArray = new JSONArray(json);
for(int i = 0; i < jsonArray.length();i++)
{
adapter.add(new DataProvider(own_event,
jsonArray.getJSONObject(i).getString("description"),
jsonArray.getJSONObject(i).getString("name"),
jsonArray.getJSONObject(i).getString("date"),
jsonArray.getJSONObject(i).getString("time"),
jsonArray.getJSONObject(i).getDouble("location_long"),
jsonArray.getJSONObject(i).getDouble("location_lati"),
jsonArray.getJSONObject(i).getInt("id")));
}
Теперь я получаю эту ошибку:
Ошибка разбора данных org.json.JSONException: значение [] типа
org.json.JSONArray не может быть преобразован в JSONObject
В строке, где я создаю JSONArray jsonArray.
Я никогда раньше не работал с json, так что, есть ли лучший способ для анализа данных из моего php-файла на android, и более безопасный способ сделать это?
Ответ сервера приходит в JSONArray, поэтому нет необходимости конвертировать в JSONObject, просто скомпонуйте JSONArray из ответа сервера и верните как JSONArray вместо JSONObject из makeHttpRequest:
JSONArray jsonArray = jsonParser.makeHttpRequest(EVENTS_URL, "POST", params);
Других решений пока нет …