Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#4

AW: Erzeugen und Freigeben von TJSONTextWriter wirklich so umständlich?

  Alt 20. Feb 2019, 10:37
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 ...)
  Mit Zitat antworten Zitat