Im
Bugtracker habe ich nichts gefunden, aber
TJson.Format(..)
ist zumindest in 10 Seattle kaputt. Kann das jemand mit Berlin/Tokyo immer noch bestätigen?
Button1 und Memo1 aufs Formular, dann
Delphi-Quellcode:
uses
Rest.Json, System.Json;
{$R *.dfm}
procedure TForm17.Button1Click(Sender: TObject);
var
objects: TArray<TObject>;
arrayIndex: Integer;
objectAsJson: TJsonValue;
objectAsString: String;
begin
objects := TArray<TObject>.Create(
TObject.Create(),
TObject.Create(),
TObject.Create()
);
for arrayIndex := Low(objects) to High(objects) do
begin
objectAsJson := TJson.ObjectToJsonObject(objects[arrayIndex]);
try
objectAsString := TJson.Format(objectAsJson);
Memo1.Lines.Append(objectAsString);
finally
objectAsJson.Destroy();
end;
end;
end;
TJson.Format liefert beim ersten mal
{}
, beim zweiten mal allerdings
{}, {}
und beim dritten mal
{}, {}, {}
.
Erwartet wäre drei mal
{}
Das liegt anscheinend daran dass in TJson.Format(..) (Rest.Json.pas) munter gesagt wird
Result := Result + ...
obwohl Result noch nie zugewiesen wurde. Wenn die Methode das zweite mal betreten wird ist Result noch mit dem Ergebnis des ersten Durchlaufs belegt.
Kann jemand prüfen ob das ab 10.1 Berlin und aufwärts immer noch auftritt?