Comment itérer ce Tableau JSON à l'aide de Java et org.json dans Android?
Ma chaîne JSON ressemble à ceci (contenue dans une variable chaîne de caractères appelée sJSON
):
[
{"id":284}
],
[
{"name":John,"surname":Doe},
{"name":Jane,"surname":Doe}
]
Je suis capable d'analyser le premier tableau, comme ceci (à l'aide de Java et de l'importation de org.json):
JSONArray arrJSON = new JSONArray(sJSON);
JSONObject jsonGeneralData = new JSONObject(arrJSON.get(0).toString());
String sResult = jsonGeneralData.get("id").toString();
Qui renvoie le résultat escompté, qui est de 284. J'ai du mal à obtenir le deuxième tableau d'éléments, et d'itérer à travers eux. Je ne sais pas si ma chaîne JSON est incorrect, ou si j'essaye d'accéder à de la mauvaise façon. Voici ce que j'ai essayé:
JSONObject jsonPersonData = new JSONObject(arrJSON.get(1).toString());
C'est ce que je suis, je ne peux pas comprendre comment faire une boucle à travers les différents éléments à l'intérieur du deuxième tableau.
EDIT:
Il semble que cette ligne d'analyse de la première chaîne de caractères entre crochets:
JSONArray arrJSON = new JSONArray(sJSON);
Soit le JSON est mal (même exemple que ci-dessus), ou il n'est pas l'analyser correctement? J'ai réussi à résoudre le problème en faisant une division sur la chaîne et de les mettre chacun dans leur propre JSONArray
, mais je ne pense pas que c'est la meilleure façon de faire les choses.
Récursive: gist.github.com/anonymous/89f8163fb22f77f4f9d3
OriginalL'auteur Mr. Smith | 2012-01-22
Vous devez vous connecter pour publier un commentaire.
Vous voulez quelque chose comme ça..
OriginalL'auteur tomtheguvnor
Vous dis pas utiliser JSONObject.toString. C'est la façon dont vous devriez effectuer une itération de votre tableau:
OriginalL'auteur Meriam
Vous devez accéder aux données à l'aide de la
arrJson
de l'objet, de ne pas créer de nouvelles JSONObjects avec les résultats de la chaîne d'eux.OriginalL'auteur Peterdk
Vous pouvez effectuer une Itération à l'aide d'un Itérateur, j'ai également copié d'un échantillon de chaîne JSON pour vous, j'espère que cela peut aider:
JSONObject.getString()
.OriginalL'auteur Desphilboy