Aller au contenu

[Résolu] Serialization de données


Ploue

Recommended Posts

Bonsoir !

Je souhaite échanger des informations entre un client et un serveur. J'ai réussi à envoyer des objets sérializés à l'aide de la librairie Gson de google, et avec des sockets UDP.

Mon problème est que les objets envoyés par le client peuvent être de plusieurs types suivants les cas (classe A, classe B, ...). Et je ne sais pas comment le serveur peut différencier cela à la réception, puisqu'on doit spécifier la classe lors de la deserialization.

J'ai donc essayé de mettre une classe abstraite au dessus de mes objets, et de déserializer en spécifiant cette classe, mais cela ne fonctionne pas.

J'ai essayé avec une autre lib (jackson), mais j'ai pas réussi non plus ...

Avez-vous une idée ?

Coté client :

A objectA = new A("test");
String json = gson.toJson(objectA);
// écriture sur socket

[...]

B objectB = new B("test2");
String json = gson.toJson(objectB);
// écriture sur socket

Coté serveur :

String json = // lecture sur socket
// Comment savoir si l'objet sérializé est de type A ou de type B ?
A object = gson.fromJson(json, A.class); // on ne peut lire qu'un A
Abstract abstractObject = gson.fromJson(json, Abstract.class); // erreur car gson ne peut pas instancier une classe abstraite

Merci d'avance :)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...