Comment faire pour convertir automatiquement la liste des objets à JSONArray avec Gson bibliothèque en java?
Permet de dire que j'ai la liste suivante de l'objet personnalisé: ArrayList<GroupItem>
où GroupItem
est une classe qui a int
et String
variables.
J'ai essayé jusqu'à présent Gson
bibliothèque, mais ce n'est pas exactement ce que je veux.
ArrayList<GroupItem> groupsList = /* ... */
Gson gson = new Gson();
JsonElement element = gson.toJsonTree(groupsList, new TypeToken<ArrayList<GroupItem>>() {}.getType());
JsonArray jsonArray = element.getAsJsonArray();
Mon but est d'obtenir JSONArray
(org.Json.JSONArray) en quelque sorte. Des idées?
[MODIFIER]
Mon projet Android avec Cordova qui a API basée sur org.Json.JSONArray
Et j'ai pensé à écrire quelque façon générique pour convertir les instances de JSONArray
/JSONObject
Merci,
- sites.google.com/site/gson/gson-user-guide#TOC-Array-Examples
- Je savais que c'était cordova! Je l'ai fait au travail la semaine dernière. Vous n'avez pas besoin de gson.
Vous devez vous connecter pour publier un commentaire.
De cette façon est travaillé pour moi:
Convertir tous les liste de Chaîne de caractères.
Créer
JSONArray
de Chaîne:La
org.json
classes de base inclus dans Android n'ont pas toutes les fonctionnalités liées à la conversion des Pojo Java/à partir de JSON.Si vous avez une liste de quelques-uns de classe (
List<GroupItem>
) et vous avez absolument besoin pour convertir unorg.json.JSONArray
vous avez deux choix:A) l'Utilisation de Gson ou Jackson pour convertir en JSON, puis analyser que JSON dans un
JSONArray
:B) Écrire du code pour créer le
JSONArray
et laJSONObject
s il contiendra de vos objets Java:Utilisation Jackson pour JSON pour Objet ou de l'Objet JSON
Voir le lien suivant Jackson exemples
Vous n'avez pas besoin de gson. Il y a un constructeur qui prend une collection, il suffit donc de:
Pourquoi voulez-vous utiliser GSON convertir un org.la classe json? Ni avez-vous besoin d'écrire du code personnalisé pour obtenir un JSONArray. Le org.api json fournit un moyen de le faire.