![]() |
JSONArray in eine DataSet
Hallo Zusammen,
ich versuche gerade eine Clien-Server App mit dem xData zu generieren. Ich rufe einen Service auf, der eine Datenbankabfrage ausführt und das Ergebnis als JSONArray zurückliefert. Die Daten kommen auch bei dem Client als JSONArray an. Jetzt möchte ich diese in ein DataSet packen und breche mir dabei die Ohren... Das sind die Daten, wie sie im JSONArray (JSONArray.ToString) stehen: '[ {"prop_id":1,"Einstellung":"Abs_name","Wert":"Must erfirmaGmbH","Kommentar":"Name des Absenders"}, {"prop_id":2,"Einstellung":"Abs_Adresse_1","Wert": "Musterstr. 4711","Kommentar":"Strasse des Absenders"}, {"prop_id":3,"Einstellung":"Abs_Adresse_2","Wert": "","Kommentar":"Adress-Zusatz"}, {"prop_id":4,"Einstellung":"Abs_PLZ","Wert":"08150 ","Kommentar":"Postleitzahl Absender"}, {"prop_id":5,"Einstellung":"Abs_Ort","Wert":"Muste rstadt","Kommentar":"Ort des Absenders"}, {"prop_id":6,"Einstellung":"WTime_Druck","Wert":"1 80","Kommentar":"Wartezeit "}]' Ich wollte es erst mit dieser Zeile machen:
Delphi-Quellcode:
Aber dieses Statement erwartet die Daten in Form eines JSValue
xWDS_Properties.SetJsonData(JSval);
Und hier meine Fragen: 1. Wie würdet Ihre die Daten aus einem JSONArray in ein DataSet (xDataWebDataSet - könnte aber auch ein anderes sein) 2. Wie mache ich aus einem JSONArray ein JSValue? Vielen Dank für die Unterstützung Patrick |
AW: JSONArray in eine DataSet
Kommt drauf an was Du willst.
Permanent in einen Record speichern, als JSON ? Oder die Daten als TDataSet zur Verfügung stellen ? Ich nehme mal an Letzteres, dafür würde ich versuchen JSON in einen ![]() ![]() ![]() |
AW: JSONArray in eine DataSet
Das ist eine Webcore-Anwendung, vermute ich mal. Wenn man einen XData-Service als Quelle nimmt, ist das XDataset soweit ich das sehe nicht der richtige Typ. WebClientdataset sollte funktionieren.
|
AW: JSONArray in eine DataSet
Ich habe es tatsächlich über eine TFDMemTable gelöst. Ich habe mir seitens des Servers die Query in einen TStream gespeichert:
Delphi-Quellcode:
Den habe ich an den Client gegeben und im Client dann in die TFDMemTable geladen:
Query.Open;
if Assigned(AStream) then begin Query.SaveToStream(AStream, sfJSON); end;
Delphi-Quellcode:
Zu Test-Zwecken ein DataSource an die TFDMemTable gehängt und das Ergbenis in einem DBGrid angezeigt. Scheint zu funktionieren.
procedure TDB_Unit.Get_Propteries;
var LClient: TxDataClient; LService: IDBService; LStream: TMemoryStream; begin LClient := TXDataClient.Create; LStream := TMemoryStream.Create; Try LClient.Uri:= xData_Conect.URL; LService:= LClient.Service<IDBService>; LStream:=LService.Properties_Select as TMemoryStream; LStream.Position:=0; MTable_Properties.LoadFromStream(LStream, sfJSON); Finally LClient.Free; LStream.Free; end; end; Jetzt muss ich mal gucken, was ich mit einer TFDMemTable im Gegensatz zu einer DataSet machen kann, denn damit habe ich noch nie gearbeitet. Vielen Dank für die Unterstützung. @Neumann Es ist keine Web-App, sondern eine VCL-App Patrick |
AW: JSONArray in eine DataSet
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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 by Thomas Breitkreuz