Voir ici. Ci-dessous se trouve la partie intéressante :
procedure TForm13.Button4Click(Sender: TObject);
var
LContact: TContact;
oMarshaller: TJSONMarshall;
crtVal: TJSONValue;
begin
LContact:=TContact.Create; //our custom class
LContact.Name:='wings-of-wind.com';
LContact.Age:=20; //remplir avec des données
oMarshaller:=TJSONMarshal.Create(TJSONConverter.Create); //notre moteur
try
crtVal:=oMarshaller.Marshal(LContact); //sérialiser en JSON
Memo1.Text:=crtVal.ToString; //afficher
finally //nettoyage
FreeAndNil(LContact);
FreeAndNil(oMarshaller);
end;
end;
Vous pouvez également voir ici un exemple plus compliqué par Adrian Andrei (l'architecte de DataSnap) ainsi qu'un exemple de marshaling personnalisé ici.