Hallo,
wenn ich eine Klasse ableite werden die neuen Felder/Eigenschaften oben angehängt und nicht unten.
Kann man das irgendwie beeinflussen?
Codebeispiel
Delphi-Quellcode:
TTest = class(TObject)
private
FID: Integer;
FValue: String;
public
property ID: Integer read FID write FID;
property Value: String read FValue write FValue;
end;
TAdditionTest = class(TTest)
private
FAdditionValue: String;
public
property AdditionValue: String read FAdditionValue write FAdditionValue;
end;
TTestContainer = class(TObject)
Test: TTest;
Addition: TTest;
end;
procedure TForm33.Button1Click(Sender: TObject);
begin
var lTestContainer := TTestContainer.Create;
var lTest := TTest.Create;
var lAdditionTest := TAdditionTest.Create;
try
lTestContainer.Test := lTest;
lTestContainer.Addition := lAdditionTest;
Memo1.Lines.Add( TJson.ObjectToJsonString( lTestContainer));
finally
lAdditionTest.Free;
lTest.Free;
lTestContainer.Free;
end;
end;
Ergebnis
Code:
{
"test":{
"iD":0,
"value":""
},
"addition":{
"additionValue":"",
"iD":0,
"value":""
}
}
Ich hätte erwartet das additionValue an letzter Stelle landet.
An sich wäre das für die weitere Arbeit mit dem JSONString ja nicht schlimm, wäre nur schön wenn man Eigenschaften wie z.B. ID an erster Stelle haben könnte.