type
tbet = record
fteam1: string;
fteam2: string;
fskor: string
end;
type
tdeltio = class
private
fusername: string;
fpassword: string;
fbet: array of tbet;
fprice: currency;
end;
deltio := Tdeltio.Create;
deltio.fusername := 'Vanias';
deltio.fpassword := '12345';
deltio.fprice := '70';
SetLength(deltio.fbet, 1);
deltio.fbet[0].fteam1 := 'Team1';
deltio.fbet[0].fteam2 := 'Team2';
deltio.fbet[0].fskor := '1-1';
var json := Tjson.ObjectToJsonString(deltio);
json result is like that:
{"username":"Vanias","password":"12345","bet":[["Team1","Team2","1-1"]],"price":70}
My problem is I expected something like this instead:
{"username":"Vanias","password":"12345","bet":[{"Team1":"Team1","Team2":"Team2","skor":"1-1"}],"price":70}
Why does the record type not have the property names? Ι know I can use a class for the tbet type, but I prefer a record type.
Records are notclasses. Make yourtbettype a class, too, so it also becomes an object instead of an array for JSON.