Android, JSONObject не может быть преобразован в JSONArray

В моем приложении для Android я пытаюсь установить связь с веб-сервером, в котором хранятся случайно созданные псевдоним и имена пользователей.

{ scores: [ { un: "Feltricapulta", sc: "143" }, { un: "Henroid", sc: "120" }, { un: "ieteubmospta", sc: "70" }, { un: "pmbotesteuai", sc: "67" }, { un: "epesomiubtat", sc: "65" } ] } 

Код в файле PHP выглядит следующим образом:

 <?php include ('connecttomysql.php'); $command = 'SELECT un, sc FROM xmlscores ORDER BY sc DESC'; $execute_command = mysql_query($command); echo '{ "scores": '; while ($table_row = mysql_fetch_assoc($execute_command)) { $jsonArray [] = $table_row; } echo json_encode($jsonArray); echo '}' ?> 

Я назвал этот URL-адрес .php на Android, используя общий метод HttpGet . Выходные данные json печатаются в стеке и предоставляют мне ошибку «Невозможно преобразовать из объекта в массив».

Глядя на файл PHP и вывод json, есть ли что-то заметно с моими кодами или выходом? Я не могу понять.

«Невозможно преобразовать объект из массива»

означает, что вы пытаетесь преобразовать строку ответа в JSONArray . но Current String Содержит JSONObject как корневой элемент вместо JSONArray . поэтому преобразуйте его в JSONObject как:

 JSONObject json=new JSONObject(<Server response string here>); // get scores JSONArray from json JSONArray jsonscoresarray=json.getJSONArray("scores"); ... 

// Реализация массива Json должна идти так.

  @Override public void fromJSON(Object json) throws JSONException { JSONObject jsonObject = new JSONObject((String) json); JSONArray jsonArray = jsonObject.getJSONArray("scores"); mScores = new ArrayList<Score>(); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObjct = (JSONObject)jsonArray.getJSONObject(i); Score object = new Score(); object.fromJSON(jsonObjct); mScores.add(object); } }