-2
votes

Comment réparer JSONObject Impossible de convertir en Jsonarray

IV'ed Essayez de convertir JSONOBJECT en JSONARRAY et sa marque d'erreur pour l'erreur Typemismacth. J'essaie de comprendre ce qui se passe mais j'ai cru dessus.

{
    "data":{
        "c_correctCount":"0",
        "c_total":"0",
        "r_correctCount":"0",
        "r_total":"0",
        "p_correctCount":"0",
        "p_total":"0",
        "i_correctCount":"0",
        "i_total":"0"
    }
}


1 commentaires

Comment j'ai corrigé ce Data doit être un tableau JSON ( [...] ) non un objet JSON ( {... } ) ... (ou vous pourriez analyser comme objet non tuyau)


3 Réponses :


1
votes

Vous ne pouvez pas traiter Data en tant que JSONARRAY, car il est clair que Data est une collection d'une clé de valeur non ordonnée, une paire de valeur avec des bretelles bouclées {}.

Si votre objectif final est de regrouper toutes les deux paires partageant le même préfixe de la lettre dans un JSONObject et de les envelopper dans un JSONARRAY, vous devez le faire manuellement


0 commentaires

1
votes

Vérifiez cette solution

//this is the jsonobject which is getting from server
JSONObject dataObj= json.getJSONObject("data"); 
Iterator x = dataObj.keys();

//here we are creating jsonArray object
JSONArray jsonArray = new JSONArray();

//by looping Iterator converting jsonobject to jsonarray
while (x.hasNext()){
String key = (String) x.next();
jsonArray.put(dataObj.get(key));
}


0 commentaires

2
votes

Veuillez essayer ci-dessous le code

 private void prepareReportList(String reportList) {
    try {
        JSONObject task_type_list = null;
        try {
            task_type_list = new JSONObject(reportList);

            JSONObject jObjData = task_type_list.getJSONObject("data");
            Iterator iterator = jObjData.keys();

            while (iterator.hasNext()) {
                try {
                    String key = (String) iterator.next();
                    JSONObject obj = jObjData.getJSONObject(key);
                    addReportData(obj);
                } catch (Exception e) {
                    e.getStackTrace();
                }

            }


        } catch (JSONException e) {
            e.printStackTrace();
        }
    } finally {
        setDataValuesToView(caregiverReportList);
    }
}


0 commentaires