Bonjour,

J'ai un projet à faire dans lequel je dois faire transiter des infos entre Delphi et un portail PHP.
Je souhaite le réaliser en JSON et j'ai donc commencé à investiguer sur la techno coté Delphi.

Je me heurte à quelques difficultés. J'ai du mal de trouver des tutos intéressants. J'ai commencé à travailler avec les classes de bases de Delphi, et je rencontre des difficultés.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
TContrat =class
private
  FdDateDeb: TDate;
public
   property dDateDeb: TDate read FdDateDeb write FdDateDeb;
end;

TApprenant =class
private
   FsNom   :string;
   [JSONName('ListContrat')]
   FListContrat: TObjectList<TContrat>;
public
   property sNom   :string read FsNom write FsNom;
   property ListContrat: TObjectList<TContrat> read FListContrat write FListContrat;
end;

...
procedure TForm3.Button2Click(Sender: TObject);
var
   apprenant : TApprenant;
   contrat : TContrat;
begin
   Memo1.Clear;

   apprenant := TApprenant.Create;
   apprenant.sNom :='JEAN';

   contrat := TContrat.Create;
   contrat.dDateDeb := StrToDate('01/01/2015');
   apprenant.ListContrat.Add(contrat);

   contrat := TContrat.Create;
   contrat.dDateDeb := StrToDate('01/01/2016');
   apprenant.ListContrat.Add(contrat);

   Memo1.Lines.Add(TJson.ObjectToJsonString(apprenant));end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
{
    "sNom": "JEAN",
    "ListContrat": {
        "ownsObjects": true,
        "items": [{
            "dDateDeb": 42005,
        },{
            "dDateDeb": 42370,
        }],
        "count":2,
        "arrayManager":{}
    }}
Dans cette exemple la sérialisation du la TObjectList<> m'a donné des données genre "ownsObjects" que je ne souhaite pas voir (pas d'intérêt pour PHP).

Comment enlever ce genre d'info ?
Est la meilleur solution pour faire du JSON ? Doit-on passer par un autre frameWork, ... ?