Einzelnen Beitrag anzeigen

TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.205 Beiträge
 
Delphi 11 Alexandria
 
#1

System.JSON TJsonObjectBuilder - fehlende Callback-Funktion

  Alt 6. Dez 2018, 22:21
Ich habe diesen Code:

Code:
procedure TTabbedwithNavigationForm.DataToJSON;
var
  Builder: TJSONObjectBuilder;
  FileStream: TFileStream;
  sPath: string;
  StreamWriter: TStreamWriter;
  Writer: TJsonTextWriter;
begin
  sPath:= TPath.GetLibraryPath;
  FileStream := TFileStream.Create(sPath+'data.json',fmCreate);
  StreamWriter:= TStreamWriter.Create(FileStream);
  Writer := TJsonTextWriter.Create(StreamWriter);
  Writer.Formatting := TJsonFormatting.Indented;
  Builder := TJSONObjectBuilder.Create(Writer);
  Builder
    .BeginObject
      .BeginArray('Transaction')
        .BeginObject.Add('id', 662713)
          .Add('firstName', 'John')
          .Add('lastName', 'Doe')
          .Add('price', 2.1)
          .AddNull('parent_id')
          .Add('validated', true)
          .BeginObject('protocol')
            .Add('timestamp',DateTimeToStr(now))
            .Add('action','plus')
          .EndObject
        .EndObject
      .EndArray
    .EndObject;
  mmoLog.Lines.Add(Builder.AsJSON); <- Hier kommt die Meldung: Dieser Vorgang ist ohne zugewiesene Callback-Funktion nicht zulässig.
end;

Frage 1: Welche callback-Funktion ist da gemeint?
Frage 2: Ich möchte den JSON String haben, der in die Datei gespeichert wird. Mir gelingt bis jetzt nur eines von beiden: Entweder mit einem anderen Stream + dann habe ich den Text oder so wie hier, dann habe ich die Datei. Aber beides gleichzeitig?


Was übersehe ich?
Danke!
  Mit Zitat antworten Zitat