Comment faire sérialisation dans Android
Si vous êtes intéressé par où cette série va, consultez notre série les grandes lignes:
Gson Series Vue d'ensemble
Mise en route avec sérialisation Java JSON - Désérialisation
Cartographie des objets emboîtés
Cartographie des tableaux et des listes d'objets
Cartographie des cartes
Cartographie des jeux
Cartographie des valeurs NULL
Principes de base - Politiques Naming
Force de sérialisation des valeurs nulles
Détendez-vous avec Gson Lenient
Valeurs spéciales de Flotteurs - Doubles
Mise en forme des dates - Personnalisé Date / Heure Cartographie
Cartographie des énumérations
Cartographie des références circulaires
Sérialisation personnalisée pour la simplification (Partie 1)
Modification de la sérialisation par défaut avec Sérialisation personnalisée (Partie 2)
Personnalisé Désérialisation Notions de base
Créateur instance personnalisée
Désérialisation sur mesure pour les champs calculés
On-The-Fly-Parsing avec les ruisseaux
Bas niveau Parsing
Le stockage des données dans Android # x27; s SharedPreferences
Comment Désérialise une liste d'objets polymorphes
5 erreurs courantes - Problèmes
Vue d'ensemble des solutions de rechange
Libération de l'apprentissage haut de gamme Forfait
Gson dépendance
Ce guide sera pratique et commencer par une sérialisation en une minute. Comme beaucoup de nos lecteurs sont les développeurs Android, nous allons pour vous adaptez, mais Gson peut être utilisé dans un environnement Java. Avant de pouvoir commencer, nous devons tirer dans la bibliothèque Gson à notre projet. Au moment de l'écriture, la dernière version est 2.8.0. Si vous utilisez Gradle, ajoutez la ligne suivante:
Si vous utilisez Maven, vous pouvez ajouter la dépendance suivante:
Pour les pauvres gars en utilisant ni système de gestion des dépendances, vous pouvez télécharger le pot sur le dépôt GitHub officiel.
Bases de sérialisation Java JSON
Alors, faisons un peu sérialisation! Sérialisation dans le contexte de Gson moyen de mappage d'un objet Java en sa représentation JSON. Dans les prochains tutoriels nos données va obtenir plus complexe, mais pour l'instant, nous allons commencer par un objet UserSimple très simple:
L'objet utilisateur a quatre propriétés:
- Le nom de l'utilisateur est un objet String
- E-mail de l'utilisateur est également un objet String
- L'âge est un entier de l'utilisateur, ce qui signifie l'âge est stocké dans les années (par exemple 26 et non l'anniversaire exact!)
- Enfin un drapeau booléen isDeveloper
Notre application Android ou Java a besoin de convertir un objet UserSimple à sa représentation JSON. En supposant que nous gardons les noms des membres de la même, nous nous attendons à un tel JSON pour Norman, l'auteur de ce billet de blog:
Donc, nous allons voir comment nous pouvons faire la conversion avec Gson. Tout d'abord, nous avons besoin de créer un objet Java pour Norman:
Pour faire la sérialisation, nous avons besoin d'un objet Gson, qui gère la conversion. Nous pouvons simplement utiliser le constructeur:
Ensuite, il faut appeler la fonction toJson () et passer l'objet UserSimple:
L'objet userJson contient la valeur suivante:
Gson a changé l'ordre des propriétés (à l'ordre alphabétique), mais le contenu est identique! Notez comment Gson respecté les types. Les valeurs de chaîne ont été enveloppés dans « ». tandis que des valeurs entières avaient pas d'emballage. Nous ne devions pas mess avec des objets JSON ou copier un seul membre. Un seul appel à Gson était suffisant pour cartographier l'objet entier. Cela est très pratique lorsque nous travaillons avec des structures de données complexes. Mais avant d'aller trop profond, nous allons tester l'autre sens. Peut-Gson créer un objet Java à partir du JSON ci-dessus?
Principes de base de JSON Java Désérialisation
Tout d'abord, nous devons créer une chaîne, qui contient le JSON mentionné ci-dessus:
Nous avons changé le « pour" éviter des tonnes de » échapper. , Cela fonctionne quand même de toute façon. L'étape suivante est, comme vous l'avez probablement deviné, pour créer une instance Gson:
Enfin, nous avons à la carte d'un JSON à un objet Java avec fromJson ():
Notez que nous avons à passer l'objet Java attendu que le second paramètre. Sinon Gson ne sait pas ce qu'il doit cartographier le JSON. Ce n'est pas un magicien!
Si nous attachons un débogueur et vérifier les userObject résultant il va nous montrer que Gson cartographié avec succès toutes les propriétés correctement:
Prochaines étapes - Perspectives
Dans ce poste obtenir commencé, vous avez vu l'utilisation de base de Gson. Nous avons montré comment il est facile de la carte et aux données de JSON. Nous sommes sûrs que vous avez un tas de questions au moment:
- Faites les classes Java ont besoin d'un modèle constructeur / getter / setter?
- Peut les champs du modèle Java est privé?
- Comment les valeurs NULL se traitées?
- Que faire si la classe Java a différente dénomination de membre que JSON?
- Comment (de) sérialisation tableaux / listes d'objets
- Comment (de) sérialiser objets imbriqués
- Est-ce que Gson garder une valeur par défaut définie pour une propriété de classe lors de l'exécution .fromJson () et il n'y a pas de valeur pour cette propriété disponible en JSON?
Faites-le rock - profiter de codage!
Pas un expert encore? Obtenez notre Gson Réservez!

Cartographie JSON aux objets Java (et vice-versa) est des années 90. Gson est la solution moderne à la carte entre Java et JSON automatiquement avec un minimum d'effort.
Vous avez juste besoin de savoir comment! Apprenez tous les détails sur les capacités de Gson, configuration personnalisation dans notre livre.
Notre livre contient tout ce que vous devez savoir sur Gson. La valeur de votre temps et vous épargner des heures interminables de recherches Google pour résoudre rapidement vos problèmes. Investir dans vos connaissances dès le départ et dans une solution propre. Nous allons vous faire l'expert Gson de votre équipe.
Comprend un classeur!