Я пытаюсь разработать приложение json parser. Здесь я получаю сообщение об ошибке JSON парсер исключение как "jsonarray cannot be converted to jsonobject"
Исключение JSONParser в android listview
Я следующий ниже формате JSON:
[
{
"status": "ok",
"data": [
{
"term_id": "28",
"name": "All Meets",
},
{
"term_id": "4",
"name": "Classic Cars",
},
{
"term_id": "30",
"name": "Trucks",
}
],
"controller": "user1"
},
0
]
Это код, где исключение:
class GetCategories extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
JSONObject json = jsonParser.makeHttpRequest(url_getcategories, "POST", params);
Log.d("Get Categories", json.toString());
try {
success = json.getString(TAG_SUCCESS);
if (success.equalsIgnoreCase("ok")) {
JSONArray sys = json.getJSONArray(TAG_CATEGORY);
System.out.println("List of Array =" + " " + sys);
for (int i = 0; i < sys.length(); i++) {
JSONObject c = sys.getJSONObject(i);
String cartitle = c.getString("name");
System.out.println("List of Categories =" + " " + cartitle);
}
} else {
error = json.getString(TAG_ERROR);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String file_url) {
super.onPostExecute(file_url);
}
}
С над кодом что не так в функциональности? Проверьте его и укажите решение.
Как в опубликованном JSON String с вопросом, корневой объект JSON является 'JSONArray' вместо' JSONObject'. поэтому вам нужно будет преобразовать полученную строку с сервера в 'JSONArray', а также изменить тип возврата' makeHttpRequest' в JSONArray. –