PDA

View Full Version : IWS nested JSON bei POST Aufruf mit SQL verarbeiten



ismiavoiwuascht
17-10-21, 09:23
Hallo beisammen

Habe da mal eine Frage an die IWS bzw. SQL Spezialisten.

Ist es möglich bei einem POST Aufruf eines SQL REST APIs im IWS, auch nested JSON zu verarbeiten? Nested JSON mit SQL ist ja grundsätzlich kein Problem (json_table), nur finde ich keine Möglichkeit das JSON gleich im IWS mit SQL zu verarbeiten.

Der umgekehrte Weg über GET API funktioniert problemlos, indem man SQL result type "Media Ressource" angibt, aber was adäquates auf der POST Seite finde ich nicht.

Beispiel des JSON:

{
"Frächter": "xxxxx",
"TPunkt": "80",
"Touren": [
{
"Tour": "abc",
"Paletten": 1,
},
{
"Tour": "xyz",
"Paletten": 5,
}
]
}

Gleich mal danke im Voraus und beste Grüße
Ingo

Fuerchau
17-10-21, 14:00
Die Abkürzung IWS ist mir nun nicht geläufig um die Frage zu beantworten.
Zur Erstellung eines JSON-Objekts siehe hier:
https://www.ibm.com/docs/en/i/7.2?topic=data-generating-json

Am Schluss ist ein Beispiel wie du eine Zeile mit einem JSON_OBJECT zurückbekommst.
Dies kann man dann in anderen SQL-Funktionen als "scalaren Subselect" wieder einbetten und somit einem HTTP-Post per (select ....) weitergeben.

ismiavoiwuascht
17-10-21, 16:12
Danke für die Antwort. Die Verarbeitung von JSON Objekten ist bekannt. Worum es mir eigentlich geht, ist wie ich ein JSON-Objekt (im speziellen ein nested JSON), welches über den Integrated Web Services for IBM i (IWS) als POST Aufruf daherkommt, verarbeiten kann.

Grüße, Ingo

Fuerchau
17-10-21, 21:17
Dann schau dir das Gegenstück dazu an:
https://www.ibm.com/docs/en/i/7.2?topic=data-using-json-table

Anstelle der Tabelle mit Select from kannst du das Ergebnis z.B. per

select .... from ...
cross join JSON_TABLE(ColumnResult, ...)

verarbeiten. In dem Beispiel wird "from table1, JSON_TABLE()" verwendet, was dem Cross Join entspricht.