Gson - convertir de Json à typé ArrayList<T>
À l'aide de la Gson de la bibliothèque, comment puis-je convertir une chaîne JSON pour une ArrayList
d'une classe personnalisée JsonLog
? Fondamentalement, JsonLog
est une interface implémentée par différents types de journaux de mon application Android--les journaux SMS, journaux d'appels, des journaux de données, et ce ArrayList
est une collection de tous. Je reçois un message d'erreur à la ligne 6.
public static void log(File destination, JsonLog log) {
Collection<JsonLog> logs = null;
if (destination.exists()) {
Gson gson = new Gson();
BufferedReader br = new BufferedReader(new FileReader(destination));
logs = gson.fromJson(br, ArrayList<JsonLog>.class); //line 6
//logs.add(log);
//serialize "logs" again
}
}
Il semble que le compilateur n'a pas compris que je fais référence à un typée ArrayList
. Que dois-je faire?
- Veuillez également vous référer à stackoverflow.com/questions/44589381/... pour une autre approche
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser TypeToken pour charger la chaîne json dans un objet personnalisé.
Mise à jour:
Si vous avez besoin de le faire dans Kotlin vous pouvez voir cette réponse.
{ }
avant.getType()
Votre JSON de l'échantillon est:
donc, si vous voulez enregistrer la liste de tableaux de modules dans votre SharedPrefrences donc :
1 - convertir votre retournés arraylist pour un format json à l'aide de cette méthode
2 - Enregistrer dans le dossier partagés prefreneces
3 - pour le récupérer à tout moment se JsonString du partage des préférences comme ça
4 - convertir de nouveau à la liste de tableau
cette solution est également faisable si vous souhaitez analyser ArrayList d'Objets
J'espère que ça aidera à vous en utilisant Gson Bibliothèque .
Si vous souhaitez utiliser des Tableaux, c'est assez simple.
Fournir les
JsonLog
comme un tableauJsonLog[].class
OU
Je ne suis pas sûr de gson, mais c'est comment vous le faites avec Jon.l'échantillon de l'espoir, il doit être de manière similaire à l'aide de gson
{
"Joueurs": [
"joueur 1",
"joueur 2",
"le joueur 3",
"le joueur 4",
"lecteur 5"
]
}
===============================================