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
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.
JSONArray leagueArray = new JSONArray(jsonArray);
semble suspectAjouté 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
Vous devez vous connecter pour publier un commentaire.
Il semble que vous essayez de tirer vers le bas une JSONArray avec certains objets. Essayez de faire quelque chose comme ceci:
OriginalL'auteur dharms
J'ai eu le même problème. C'est à cause de cette ligne:
Vous êtes essentiellement la création de 2 différents JSONArrays, le second est simplement en pointant de revenir à la première, mais on ne peut pas instancier le deuxième tableau, de cette façon, ou qu'il va jeter l'erreur. Ainsi, vous n'avez pas besoin de le faire:
viens de faire:
Sur une note de côté, je pense que ce que vous vouliez faire, c'était:
Votre premier résultat est un Tableau (indiqué par " []"), mais de l'enfant intérieur est un objet (représenté par '{}')
Espère que cela aide 🙂
OriginalL'auteur Machine Tribe
la deuxième JSONArray est orientée vers le retour à la première, il suffit donc de faire:
ofc, fonte seulement si vous en avez besoin!
OriginalL'auteur Francesco O'Bioh D'Agostino
Après l'obtention de la Réponse par le Volley bibliothèque dans JsonArray(réponse), n'est pas Primitive de réponse par la création de Nouveaux JSonArray.
Utiliser l'approche suivante de son travail:
OriginalL'auteur ZafarHussain