Hallo Dieter, du kannst mit den JSON Aggregationsfunktionen auch komplexe JSON Daten erzeugen. Ähnlich wie mit den XML Funktionen in SQL.


Natürlich kann man
Du musst lediglich mit mehreren Common Table Expressions arbeiten.
Zuerst selektierst Du die Rohdaten und dann fängst Du an das JSON Dokument ausgehend vom untersten Level aus aufzubauen.
OK, ich habe verstanden, dass man auch komplexe JSON-Objekte mit SQL erstellen kann. Aber wir haben noch folgendes Problem: Wenn wir in einem IWS Webservice als Ausgabeart *JSON auswählen und dann ein (komplexes) JSON mittels SQL-Funktionen erstellen, packt der IWS das ganze, bereits fertige JSON, nochmal in ein JSON. Und dabei escaped er das von uns erstellte "innere" JSON. Wir finden da einfach keine Lösung.

Kann man dem IWS sagen, dass einfach nur "plain Text" herauskommen soll? Oder kann man angeben, dass das, was man zurückgibt, bereits JSON ist und er das nicht nochmal in JSON umbauen soll?

Vielleicht sehen wir den Wald vor lauter Bäumen nicht. Vielleicht nochmal zur Klarstellung, was ich meine:

Wenn man einen SQL-Webservice mit JSON-Ausgabeart definiert und ganz normale SQL-Ergebnisse (also in der Regel Datenbankfelder) zurückliefert, dann packt der IWS das Ergebnis richtig schön in JSON sein und gibt lupenreines JSON als Response zurück.

Aber wenn unser SQL selber schon JSON zusammenbaut (eben mit den SQL-JSON-Funktionen), dann packt der IWS das bereits fertige JSON nochmal in JSON ein. Der IWS kann auch gar nicht wissen, dass das SQL bereits ein gültiges JSON liefert, denke ich. Deshalb hält er das JSON für einen String und escaped alles und macht schließlich geschweifte Klammern drum.

Bin für jede Hilfe dankbar.

Dieter