![]() |
AW: verstehe neue Vorgehensweise nicht wirklich :-(
Im Prinzip stand alles was du wissen musst in der ersten Antwort:
Zitat:
|
AW: verstehe neue Vorgehensweise nicht wirklich :-(
Liste der Anhänge anzeigen (Anzahl: 1)
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; |
AW: verstehe neue Vorgehensweise nicht wirklich :-(
Wow, nett.
Delphi-Quellcode:
und Konsorten kannte ich noch nicht. Das ist natürlich besser 👍
WriteStartObject()
Mir würde nur das fehlende try..finally zwischen
Delphi-Quellcode:
und
WriteStartObject()
Delphi-Quellcode:
(analog das Array) stören. Und den inneren Teil mit der Schleife in eine eigene Methode rausziehen, das ist ja schon etwas lang.
WriteEndObject()
Die WriteStartXX-Dinge sind mir echt neu. Wieder was gelernt 😊 |
AW: verstehe neue Vorgehensweise nicht wirklich :-(
ich weiß, aber optimiert wird immer erst später ;-) Baue gerade ein DatenModul rein..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz