Android - comment analyser JsonArray de chaîne?

Je suis en train d'analyser un tableau json de chaîne json, mais il jette toujours l'exception data of type java.lang.String cannot be converted to JSONArray.

S'il vous plaît dites-moi si je fais erreur.

Grâce.

Voici mes codes pour obtenir Json à partir du serveur:

try {
                String url = String.format(<url here>, province.provinceCode2);
                HttpClient httpClient = getHttpClient();
                HttpGet httpGet = new HttpGet(url);
                HttpResponse httpResponse = httpClient.execute(httpGet);
                HttpEntity entity = httpResponse.getEntity();
                final String result = EntityUtils.toString(entity);
                parseAndSaveJsonData(province, result);
            } catch (Exception e) {
                e.printStackTrace();
            }

voici les codes pour analyser JsonArray:

String jsonString = <below json string>
JSONArray ja = new JSONArray(jsonString);

Voici ma chaîne json:

   [
{
"LotPrizes":[
{
"Prize":"Giảitám",
"Range":"50"
},
{
"Prize":"Giảibảy",
"Range":"264"
},
{
"Prize":"Giảisáu",
"Range":"3654-5162-3097"
},
{
"Prize":"Giảinăm",
"Range":"9739"
},
{
"Prize":"Giảitư",
"Range":"97690-99274-32442-69432-04855-10132-17085"
},
{
"Prize":"Giảiba",
"Range":"73745-13007"
},
{
"Prize":"Giảinhì",
"Range":"05521"
},
{
"Prize":"Giảinhất",
"Range":"74870"
},
{
"Prize":"GiảiDB6",
"Range":"878833"
}
]
},
{
"LotPrizes":[
{
"Prize":"Giảitám",
"Range":"50"
},
{
"Prize":"Giảibảy",
"Range":"264"
},
{
"Prize":"Giảisáu",
"Range":"3654-5162-3097"
},
{
"Prize":"Giảinăm",
"Range":"9739"
},
{
"Prize":"Giảitư",
"Range":"97690-99274-32442-69432-04855-10132-17085"
},
{
"Prize":"Giảiba",
"Range":"73745-13007"
},
{
"Prize":"Giảinhì",
"Range":"05521"
},
{
"Prize":"Giảinhất",
"Range":"74870"
},
{
"Prize":"GiảiDB6",
"Range":"878833"
}
]
}
]
  • u peut afficher le code où u obtiennent chaîne du serveur?
  • C'est un JSON "objet", pas un "tableau". Malheureusement, certains (mort cérébrale) JSON Api insister sur ce que tu sais si c'est un objet ou un tableau avant de l'analyser, de sorte que parfois, vous avez pour voir si le premier caractère est { ou [.
  • (Vous pouvez bénéficier de l'étude de la JSON manuel de référence. Fastidieux, je sais, mais je suis sûr que vous pouvez gérer.)
  • wow!!!, vous avez changé de Chaîne JSON, car prev chaîne contient un Tableau Json comme élément racine et que vous faites l'analyse dans le droit chemin .vous obtenez l'erreur parce que quelque part dans le code que vous ajoutez caractère spécial dans la chaîne lors de la lecture à partir de la mémoire Tampon peut-être ajouter "\n" à la fin de la chaîne et maintenant courant Chaîne json contenir d'Objet Json
  • J'ai changé la chaîne de continuer à discuter Avec Caerulius. La chaîne d'origine est lié à l'intérieur de [ ]
  • grande si u résolu la question, mais ce n'est pas je pense que la résolution de problème de moyen de changer l'idée principale à la place si la résolution de problème en cours . merci beaucoup .
  • K, veuillez consulter la mise à jour de codes sources pour obtenir JsonString à partir du serveur
  • J'ai enfin trouvé la cause. Veuillez voir ma propre réponse. Je pense que c'est un bug de HttpEntity