Ich würde den Code sogar noch etwas weiter aufdröseln zu
Delphi-Quellcode:
function TmyClass.GetInfoAsJSON:
string;
var
jWriter: TJsonTextWriter;
textWriter: TTextWriter;
begin
textWriter := TStringWriter.Create;
try
// start write json
jWriter:=TJsonTextWriter.Create(textWriter);
try
jWriter.WriteStartObject;
jWriter.WritePropertyName('
values');
jWriter.WriteValue('
wuppdi');
jWriter.WriteEndObject;
finally
jWriter.Free;
end;
// end write json
Result := textWriter.ToString;
finally
textWriter.Free;
end;
end;
und nun sieht man, dass man diesen JSON-Write Kram auch in eine eigene Methode auslagern kann.
Delphi-Quellcode:
procedure TmyClass.WriteJSONInfo(
const AWriter: TTextWriter);
begin
jWriter:=TJsonTextWriter.Create(AWriter);
try
jWriter.WriteStartObject;
jWriter.WritePropertyName('
values');
jWriter.WriteValue('
wuppdi');
jWriter.WriteEndObject;
finally
jWriter.Free;
end;
end;
function TmyClass.GetInfoAsJSON:
string;
var
textWriter: TTextWriter;
begin
textWriter := TStringWriter.Create;
try
WriteJSONInfo(textWriter);
Result := textWriter.ToString;
finally
textWriter.Free;
end;
end;
und schon sieht das wesentlich entzerrter aus und man kann jetzt jeden beliebigen TextWriter von aussen übergeben (zum Testen, zum ...)