Datasnap / Unmarshal

Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
-
Bonjour,

Pour un projet Datasnap Rest, exploité par un client php, j'ai déclaré la classe suivante :
  TResultat = class(TPersistent)
  Public
     iNbChamps      : Integer;                 // Nombres de champs
     arrsNomsChamps : array of string;         // Noms des champs
     arrsTypeChamps : array of TFieldType;     // Types des champs
     iRecordCount   : Integer;                 // Nombre d'enregistrements
     arrsValues     : array of array of string;// Valeurs
  end;


Côté serveur, la sérialisation pour un retour de fonction en JSONValue se passe très bien, le client php le reçoit bien, et le parse sans problème.

Sur un client delphi qui attaque le même serveur Datasnap, j'essaie de désérialiser ça avec un TJSONUnMarshal, mais... le programme plante avec un message :

Exception 'first chance' à $76C2C41F. Classe d'exception EConversionError avec un message
'Interne : Impossible d'instancier le type UClassesPerso.TResultat'...

Pourtant l'unité UClassesPerso est bien dans le source de mon serveur et de mon client Delphi...

Je suppose que le UnMarshaler ne sait pas désérialiser ma classe... (Pourtant il arrive bien à la sérialiser ???). Du coup, j'imagine qu'il faut le lui apprendre ? Ce qui revient à coder un parseur en fait...

Avez-vous une astuce ?
Afficher la suite