La traduction de imbriquée des objets Java/à partir de json à l'aide de gson
Supposons que nous avons deux Classes Java (en omettant les autres membres de la classe):
class Book {
private String name;
private String[] tags;
private int price;
private Author author;
}
class Author {
private String name;
}
En outre, supposons que nous avons les éléments suivants objet json:
{"Book": {
"name": "Bible",
"price": 20,
"tags": ["God", "Religion"],
"writer": {
"name": "Jesus"
}
}
Je suis en train d'essayer de trouver le meilleur moyen de convertir un Java Livre instance en json et à l'arrière à l'aide de gson. Pour rendre l'exemple plus intéressant, de noter que dans le json, je veux utiliser "écrivain" au lieu de "l'Auteur". Pouvez-vous s'il vous plaît aider? Idéalement, j'aimerais voir une mise en œuvre complète.
- Peut-on voir certains de vos efforts dans ce sens?
- Idéalement, nous ne voudrais pas faire vos devoirs. Si vous google un peu, vous trouverez des tonnes d'exemple implémentations de comment utiliser gson.
- Valider votre Chaîne JSON ici JSONLint - Le JSON Validateur
- Je poste ici, que si ma recherche d'une réponse, échoue. Je suis déjà familier avec gson et comment faire pour convertir un objet vers/à partir de json manuellement qui devient une tâche fastidieuse pour les gros objets Java. Je suis principalement à la recherche d'automatiser l'effort par la configuration de gson pour le faire automatiquement (spécialement pour les fromJson). L'exemple que j'ai posté ci-dessus est artificiel, mais il a tout ce que j'ai besoin d'apprendre afin de faire mon propre code. Ma principale question est à propos de la configuration de gson à savoir que la valeur de "l'écrivain" clé doit être converti à une instance de la classe Auteur. Que je ne sais pas comment faire.
Vous devez vous connecter pour publier un commentaire.
Essayer avec GsonBuilder#setPrettyPrinting() qui configure Gson de sortie Json qui s'insère dans une page pour la jolie impression. Cette option n'affecte que la sérialisation Json.
Lire plus sur Gson qui est généralement utilisé en construisant un Gson instance puis en invoquant la méthode ci-dessous sur elle.
la méthode toJson(Objet) qui sérialise l'objet spécifié dans son équivalent représentation Json.
fromJson(String, Classe) que désérialise le spécifiée Json en un objet de la classe spécifiée.
BookDetails Objet JSON Chaîne
Exemple de code:
de sortie:
Chaîne JSON à BookDetails Objet
Voici les classes
writer
qui est de typeAuthor
, Gson lit de champ et d'affecter la valeur dename
àAuthor
'sname
variable. IciBookDetails
est utilisé de la même manière pour faire unvariable
qui représente initialeBook
valeur de la chaîne JSON et cartographiés dans la même manière que pourAuthor
.Gson
utilise champs pour la carte de la chaîne JSON à l'objet, et vice-versa.Author writer;
au lieu deAuthor author;
à la cartewriter
de la chaîne JSON.Merci pour toutes les réponses. J'ai été en mesure de le comprendre et de mettre en œuvre à l'aide de certaines personnalisé sérialiseur et deserializer. Voici mon propre solution: