Einzelnen Beitrag anzeigen

Benutzerbild von exasoft
exasoft

Registriert seit: 19. Nov 2015
Ort: Frankfurt
47 Beiträge
 
#22

AW: verstehe neue Vorgehensweise nicht wirklich :-(

  Alt 4. Jan 2019, 11:31
Moin @ALL,
also, habs jetzt so (s.u.) gemacht und klappt auch super (s. Anhang).
Bitte nicht über die ausführlichen Kommentare wundern - dient als Lehrstoff. Und falls noch jemand etwas anzumerken hätte - alls her damit.

Tks nochmal..

Delphi-Quellcode:
  // json-antwort aufbereiten..
  // entspr. objekte erstellen..
  StringWriter := TStringWriter.Create();
  Writer := TJsonTextWriter.Create(StringWriter);

  try
    // json-antwort formatiert aufbereiten??
    if uglobal.JSON_FORMATIEREN then
      Writer.Formatting := TJsonFormatting.Indented;

    // beginn json-objekt für tabelle..
    Writer.WriteStartObject;
    Writer.WritePropertyName('wowarer');
    // beginn json-array für tabelle..
    Writer.WriteStartArray;

    // datensaetze scannen..
    dm.qryWoWarer.First; // vorsichtshalber auf ersten ds
    // info: diese form des scannens, weil man desöfteren im scanvorgang einen index (i) gebrauchen kann
    // alternativ: while NOT dm.qryWoWarer.Eof do begin - dann entfällt "nächster datensaetz"
    for var i: integer := 0 to dm.qryWoWarer.RecordCount - 1 do begin
      // für jeden ds ein json-objekt erstellen..
      // beginn json-objekt..
      Writer.WriteStartObject;
      // entspr. tabellen-felder mit deren werten in json-objekt..
      Writer.WritePropertyName('id');
      Writer.WriteValue(dm.qryWoWarer.FieldByName('id').AsInteger);
      Writer.WritePropertyName('location');
      Writer.WriteValue(dm.qryWoWarer.FieldByName('location').AsString);
      // ende json-objekt..
      Writer.WriteEndObject;
      // nächster datensaetz..
      dm.qryWoWarer.Next;
    end;

    // ende json-array für tabelle..
    Writer.WriteEndArray;
    // ende json-objekt für tabelle..
    Writer.WriteEndObject;

    // prot..
    if uglobal.OGProtokoll.Protokollieren then begin
      uglobal.AddToProtokoll('Anforderung gesendet');
      if uglobal.OGProtokoll.ProtokollierenJSONString then begin
        // JSON-String formatiert ausgeben..
        uglobal.AddToProtokoll('sende:' + sLineBreak + StringWriter.ToString,false,true);
      end;
    end;

    // senden..
    // ContentType setzen, damit der client weiss welche art daten..
    Response.ContentType := 'text/plain; charset="UTF-8"';
    // und, weil webbies... - alles als string liefern..
    Response.Content := StringWriter.ToString;
  finally
    Writer.Free;
    StringWriter.Free;
  end;
Miniaturansicht angehängter Grafiken
webserver.png  
  Mit Zitat antworten Zitat