Dans mon application Android, je récupère les détails de Points Tableau d'un tournoi pour convertir la sortie en une chaîne de JSON Object à Java
L'objet JSON est indiqué ci-dessous: P>
Error: Value ["name","p","w","l","points"] at header of type org.json.JSONArray cannot be converted to JSONObject
6 Réponses :
Essayez ceci @sauash, je viens de modifier en prenant votre réponse
Passez-vous un type d'en-tête lorsque vous l'appelez au serveur? @Saashtechs
Dans vos équipes JSON contient le tableau de l'objet et vous manquez mal.
Essayez ceci
Merci, je reçois l'erreur 'Impossible de résoudre la méthode getjsonarray (java.lang.string)' @rajish Suryavanshi
Quel nom de chaîne que vous passez?
Vérifiez mon code mis à jour. J'ai vérifié et je reçois aussi la production.
try { JSONObject jsonObject = new JSONObject(response.body().string()); JSONObject subObject = jsonObject.getJSONObject("group") ; JSONArray jsonArray = subObject.getJSONArray("Teams"); for (int i=0; i<jsonArray.length(); i++){ JSONObject object = jsonArray.getJSONObject(i); String name = jsonObject.getString("name"); String p= jsonObject.getString("p"); String w= jsonObject.getString("w"); String l= jsonObject.getString("l"); String points = jsonObject.getString("points"); } } catch (Exception e) { e.printStackTrace(); }
@Saashtechs Partagez votre logcat, puis je pourrai vous aider à sortir et code d'activité complet.
if (match.has("group")) { JSONObject group = match.getJSONObject("group"); if (match.has("Teams")) { JSONArray teams = group.getJSONArray("Teams"); // for only 0th element use below code else looping JSONObject teams_object = (JSONObject) teams.get(0); String team_name = teams_object.getString("name"); String matches_played = teams_object.getString("p"); String matches_won = teams_object.getString("w"); String matches_lost = teams_object.getString("l"); String points = teams_object.getString("points"); } }
@Saashtechs mieux vous allez pour l'analyse de GSON
Erreur: valeur ["Nom", "P", "W", "L", "Points"] à l'en-tête de type org.json.jsonarray ne peut pas être converti en JSONOBJECT P>
Vous obtenez l'erreur car il y a une gamme d'équipes et vous essayez d'analyser avec
JSONObject code> p>
Vérifiez ci-dessous l'extrait de code. Cela fonctionnera. P>
try { JSONObject match = new JSONObject("your_response"); if (match.has("group")) { JSONObject group = match.getJSONObject("group"); if (group.has("Teams")) { JSONArray teams = group.getJSONArray("Teams"); for(int i=0; i < teams.length(); i++){ JSONObject teams_object = (JSONObject) teams.get(i); String team_name = teams_object.getString("name"); String matches_played = teams_object.getString("p"); String matches_won = teams_object.getString("w"); String matches_lost = teams_object.getString("l"); String points = teams_object.getString("points"); } } } } catch (JSONException e) { e.printStackTrace(); }
@SaashTechs Mettez à jour votre question avec le dernier code, JSON et erreur
Il y a 4 erreurs dans votre code,
1.vous devez vérifier si 2.Vous devez obtenir 3.Vous devez vérifier la taille de l'équipe, au lieu de trouver l'objet avec la clé 4.Vous devez obtenir l'objet basé sur l'index au lieu de la clé (c.-à-d., Vérifiez le code de travail, ceci est testé p> groupe code> a
équipes code> au lieu de la page
correspondant code> a
équipes code>. p>
équipe code> comme
jsonarray code> au lieu de
jsonObject code> parce qu'il est déployer. p>
0 code>, il n'y a aucun objet avec nom
0 code> dans votre groupe, p>
0 code>) p>
pojo.sodhanalibrary.com/convert
Utilisez des cours de pojo. L'analyse sera beaucoup plus facile
vérifier ma réponse @sauh
Vérification @ g.brahmadatta
L'équipe devrait être une matrice JSON. pas un objet JSON.
ouais si vous trouvez un problème, vous pouvez ping je vais résoudre @saashtechs
@ g.brahmadatta, je reçois l'erreur 'Impossible de résoudre la méthode getjsonarray (java.lang.string)'
Avez-vous essayé ma réponse modifiée? @ Saashtechs.J'ai écrit groupe au lieu d'équipes
Ahh, désolé, ma faute
Essayez juste. Je n'ai pas essayé dans mon code. Je viens de l'écrire sans vérifier @saashtechs
Je vois toujours la même erreur sir @ g.brahmadatta
Je vais vérifier @saashtechs
Vérifiez ma réponse modifiée @saashtechs. J'ai commis une erreur.Mous tu n'auras pas une erreur
Mais monsieur, je reçois toujours la même erreur que j'ai donné dans ma question @ g.brahmadatta
@Saashtechs Vérifiez ma réponse Il fonctionne à mes côtés.
Dupliqué possible de Comment analyser JSON à Java
J'ai édité ma réponse en utilisant le même format de votre réponse, vérifiez-le @saashtechs