[Gson] Lecture d'un fichier json
Bonjour/Bonsoir,
Je commence à tâter le java depuis quelque temps mais malgré mes quelques compétences, je dois m’en remettre à vous.
Je développe actuellement une application Java qui inclue la possibilité d’importer et d’exploiter les données d’un fichier .json. Seulement voilà, je rencontre des difficultés concernant le traitement de données.
Le fichier Json à la structure suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| {
"Objets " : [
{
"Objet1" :{
"Donnée1" : "donnée1",
"Donnée2" : "donnée2",
"Donnée3" : "donnée3",
}
"Donnée1" : "donnée1",
"Donnée2" : "donnée2",
},
{
"Objet2" :{
"Donnée4" : "donnée4",
"Donnée5" : "donnée5",
"Donnée6" : "donnée6",
}
"Donnée4" : "donnée4",
"Donnée5" : "donnée5",
},
…
]
} |
Si j’ai bien compris, le fichier est composé d’un tableau « Objets » comportant des objets (qui à leur tour disposent de données).
En parcourant le net, j’ai réussi à trouver des librairies de dé-sérialisation (gson) qui me permettent de transformer ce que je récupère dans le type souhaité. Le hic, c’est que je ne reçois que les données qui sont en rouge (alors qu'elles ne m’importent peu car elles sont inclues dans l'objets au dessus, vous suivez ? ;)).
Voici mon reader :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| try {
String url = "C:/Users/user/exempleJson.json";
JsonReader reader = new JsonReader(new InputStreamReader(new FileInputStream(url)));
JsonParser jsonParser = new JsonParser();
JsonArray userArray = jsonParser.parse(reader).getAsJsonArray();
List Player = new ArrayList<>();
Gson myGson = new Gson();
for (JsonElement aUser : userArray) {
Player aPlayer = myGson.fromJson(aUser, Player.class);
Player.add(aPlayer);
}
} |
Tout compile et ma classe Player (mon objet à traiter) dispose des mêmes noms d’attributs que ceux présents dans le fichier json.
Néanmoins, voilà le résultat obtenu lors de l’exécution :
Code:
1 2
| Donnée1 donnée2 null
Donnée3 donnée4 null |
Ma question est donc : Comment dois-je m'y prendre afin de récupérer tous les éléments d'un objet et non pas les deux lignes inutiles ?
Si certain(e)s peuvent m’éclairer sur la démarche à suivre, je vous en serais très reconnaissant. :ccool:
D’avance merci !
Energizing