0
votes

Erreur lors de l'analyse JSON Objet en Java Android

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


17 commentaires

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


6 Réponses :


0
votes

Essayez ceci @sauash, je viens de modifier en prenant votre réponse xxx


1 commentaires

Passez-vous un type d'en-tête lorsque vous l'appelez au serveur? @Saashtechs



1
votes

Dans vos équipes JSON contient le tableau de l'objet et vous manquez mal. Essayez ceci xxx


3 commentaires

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.



0
votes
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();
}

1 commentaires

@Saashtechs Partagez votre logcat, puis je pourrai vous aider à sortir et code d'activité complet.



0
votes
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");

    }
}

1 commentaires

@Saashtechs mieux vous allez pour l'analyse de GSON



0
votes

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();
    }


1 commentaires

@SaashTechs Mettez à jour votre question avec le dernier code, JSON et erreur



0
votes

Il y a 4 erreurs dans votre code,

1.vous devez vérifier si groupe a équipes au lieu de la page correspondant a équipes .

2.Vous devez obtenir équipe comme jsonarray au lieu de jsonObject parce qu'il est déployer.

3.Vous devez vérifier la taille de l'équipe, au lieu de trouver l'objet avec la clé 0 , il n'y a aucun objet avec nom 0 dans votre groupe,

4.Vous devez obtenir l'objet basé sur l'index au lieu de la clé (c.-à-d., 0 )

Vérifiez le code de travail, ceci est testé xxx


0 commentaires