Funktioniert es nicht wenn man die Properties in der konkreten Klasse auch deklariert?
Nein, da der Serializer nicht Properties serialisiert, sondern Felder der Klassen.
Alle zu serialisierenden Klassen müssen daher zwangsläufig mit F beginnen (Delphi-Standard).
Im Quelltext beginnen die Felder mit dem Srandard-"F":
Delphi-Quellcode:
[JsonName('SecondProp')] [JsonIn]
FSecondProp: string;
[JsonName('SecondObj')] [JsonIn]
FSecondObj: IFooOne;
Mein Vermutung ist daher, dass zusätzlich noch die property Deklarationen wiederholt werden müssen...
Nein nein, es ist genau so, wie ich schrieb. Properties sind dem Serializer total egal.
Sowas hier zum Beispiel wird serialisiert.
Delphi-Quellcode:
TMyClass = class
private
FMyString: string;
FMyInteger: Integer;
end;
Das man zusätzlich per Attribut den Namen im JSON verändern kann, ist ein anderes Thema.