À l'aide de GSON pour analyser un JSON avec la dynamique de la “clé” et “valeur” dans android
Je suis actuellement en train de travailler sur un projet android qui m'oblige à appeler un service web qui va me rendre un fichier json. J'ai été en utilisant GSON bibliothèque pour analyser tous les fichier json et d'obtenir un objet JSON. Il a été fonctionne bien jusqu'à ce que je tombe sur cet de données json laquelle la clé des champs sont dynamiques. Un exemple de ce fichier est comme ci-dessous:
{ "0": { "count":"5"},
"1": { "title":"...", "desc":"" },
"2": { "title":"...", "desc":"" },
"3": { "title":"...", "desc":"" },
"4": { "title":"...", "desc":"" },
"5": { "title":"...", "desc":"" },
"routes": { "route1":"...", "route3":"" },
}
Je suis en mesure d'obtenir le décompte basé sur l'identification de la clé de "0", mais je ne suis pas sûr de savoir comment dois-je faire usage de cette valeur pour obtenir la clé d'autres objets (id de clé 1-5), qui consistent en des données dont j'avais besoin. Va vraiment reconnaissant si quelqu'un est capable de m'aider dans cette affaire. Merci.
- Je tiens à ajouter que si votre carte n'est pas imbriqué que les choses sont beaucoup plus simples stackoverflow.com/questions/2779251/...
Vous devez vous connecter pour publier un commentaire.
L'approche la plus simple je pense est de considérer la structure comme un
Map
(deMap
).Avec Gson, cela est relativement facile à faire, aussi longtemps que le
Map
structure est connu statiquement, chaque branche de la racine a la même profondeur, et tout est uneString
.Pour plus dynamiques
Map
structure de la manipulation, je vous suggère fortement de commutation à utiliser Jackson, au lieu de Gson, comme Jackson désérialiser tout objet JSON de n'importe quelle complexité en JavaMap
, avec juste une simple ligne de code, et il conserve automatiquement les types de valeurs primitives.Le même effet peut être obtenu avec Gson, mais il nécessite des dizaines de lignes de code. (Et en Plus, Gson a d'autres défauts qui font de commutation à Jackson vaut bien.)
Vous pouvez juste obtenir la clé individuelle des objets en utilisant le comte. Donc, vous obtiendrez d'objet "1", et puis obtenir sa "titre" et "desc" des objets, puis l'objet "2", etc.