J'utilise Gson pour créer une chaîne JSON. Jusqu'à présent, j'ai sérialisé des classes relativement petites avec quelques membres, donc j'ai juste créé une classe avec les membres nécessaires et juste utilisé toJson
pour créer le json. Si c'est pertinent pour cette question, alors c'est dans une application Android.Correct façon de créer une grande chaîne JSON en utilisant Gson
Maintenant, j'ai besoin de créer un json plus complexe avec de nombreux champs et plusieurs niveaux. Un exemple de JSON (au moins une partie de celui-ci juste pour montrer l ' « esprit » de celui-ci):
"sleep" : {
"program" : {
"appName" : "name",
"appVersion" : "1.7"
"serverVersion" : 19
},
"userType" : "new",
"userInfo" : {
"firstName" : "Hans",
"lastName" : "Schmidt",
"city" : "Berlin",
"country" : "Germany",
},
"settings" : {
"setting1" : "y",
"setting2" : "none"
}
...
}
Dans ce cas, dois-je créer une classe différente pour chaque arbre? par exemple, une classe pour la partie "programme", une classe pour "userInfo" et ainsi de suite, puis créer une classe pour la racine "sleep" qui contient chaque classe plus petite comme membre et utilise toJson
dessus? Je suppose que cela fonctionnera, mais est-ce le moyen le plus efficace de créer autant de classes pour un seul JSON?
Quel est le problème, gson fera le travail pour vous? –
Si vous voulez une représentation pojo de votre json alors vous aurez besoin de différentes classes pour les différents niveaux d'arbres comme vous l'avez suggéré. Si vous n'en avez pas besoin vous pourriez probablement (je ne connais pas Gson mais je suppose que c'est très similaire à Jackson) également utiliser une combinaison de maps/instances JSONObject et lists/instances JSONArray. – Thomas
et vous pouvez simplement écrire des classes et l'implémenter les uns avec les autres, puis gson fera le travail –