JSONException: n'est Pas une primitive de tableau?

Je vais avoir des problèmes avec la réception d'un tableau JSON à partir d'une URL. J'ai vérifié que mon lien est ok, et que le tableau JSON est retourné, et il montre même dans le message d'erreur. Je ne suis pas certain de ce que cela signifie.

Erreur:

04-17 21:34:04.435  21842-22217/edu.appdesign.leaguestats W/System.err org.json.JSONException: Not a primitive array: class org.json.JSONArray
04-17 21:34:04.435  21842-22217/edu.appdesign.leaguestats W/System.err at org.json.JSONArray.<init>(JSONArray.java)
04-17 21:34:04.445  21842-22217/edu.appdesign.leaguestats W/System.err at edu.appdesign.leaguestats.GetStaticData$GetSummary.doInBackground(GetStaticData.java:90)
04-17 21:34:04.445  21842-22217/edu.appdesign.leaguestats W/System.err at edu.appdesign.leaguestats.GetStaticData$GetSummary.doInBackground(GetStaticData.java:76)
04-17 21:34:04.445  21842-22217/edu.appdesign.leaguestats W/System.err at android.os.AsyncTask$2.call(AsyncTask.java)
04-17 21:34:04.445  21842-22217/edu.appdesign.leaguestats W/System.err at java.util.concurrent.FutureTask.run(FutureTask.java)
04-17 21:34:04.445  21842-22217/edu.appdesign.leaguestats W/System.err at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java)
04-17 21:34:04.445  21842-22217/edu.appdesign.leaguestats W/System.err at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java)
04-17 21:34:04.445  21842-22217/edu.appdesign.leaguestats W/System.err at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java)
04-17 21:34:04.445  21842-22217/edu.appdesign.leaguestats W/System.err at java.lang.Thread.run(Thread.java)

Code:

    JSONArray jsonArray = jsonArrayParser.getJSONFromUrl(url2);
JSONArray leagueArray = new JSONArray(jsonArray);
summary.rTier = leagueData.getString("tier");
summary.rLeague = leagueData.getString("leagueName");
summary.rRank = leagueData.getString("rank");
summary.rLeaguePoints = leagueData.getString("leaguePoints");

JSON:

[{
"isHotStreak": false,
"isFreshBlood": false,
"leagueName": "Udyr's Lancers",
"isVeteran": false,
"tier": "GOLD",
"lastPlayed": -1,
"playerOrTeamId": "23591778",
"leaguePoints": 0,
"rank": "V",
"isInactive": false,
"queueType": "RANKED_SOLO_5x5",
"playerOrTeamName": "NV43",
"wins": 83
}]

Cela est fait à partir d'une AsyncTask, donc il n'y a pas de problème là. Toute idée de ce que pourrait être la cause?

il serait utile de voir le JSON que vous tentez de récupérer
JSONArray leagueArray = new JSONArray(jsonArray); semble suspect
Ajouté le JSON à mon poste.
Vous avez eu raison. Changé mon code un peu et il fonctionne comme prévu.
Heureux que vous avez été en mesure de le comprendre! Je vais répondre de la façon dont vous pourriez aborder cette s'il n'y avait plus qu'un objet dans le tableau.

OriginalL'auteur Nate | 2014-04-18