Hallo,

ein Kollege hat folgendes Problem:

Er bekommt ein JSON, in dem sich ein Array mit Feldnamen und zugehörigen Feldinhalten befindet. Er würde gerne dieses JSON dynamisch in eine passende, extern definierte Datenstruktur schreiben ohne alle Feldnamen im Programm hart zu codieren. (Es geht letztlich um 3000 Felder, die im JSON vorkommen können). Zusätzlich gibt es eine Tabelle, in der die Feldtypen und Feldlängen beschrieben sind.

Also z.B.
dcl-ds AdressSatz extname('ADRESSE') end-ds;

In der Tabelle Adresse (und damit auch in der Datenstrukur AdressSatz) befinden sich die Felder VORNAME und NACHNAME.
Im JSON befindet sich ebenfalls der Wert "VORNAME" und der Inhalt "Hugo".
Jetzt soll "Hugo" in das Feld "VORNAME" in der Datenstruktur AdressSatz geschrieben werden.
Aber nicht durch harte Verdrahtung, sondern dynamisch, z.B. durch Dynamisches SQL.

Die einzige Lösung, die uns bisher eingefallen ist, ist eine Tabelle "Adresse" in der QTEMP zu erstellen und dynamische SQL-Anweisungen zu erstellen, die einen Datensatz in der Tabelle füllen. Wenn alles gefüllt ist, wird der Datensatz mit statischem SQL wieder ausgelesen und in die Datenstruktur geschoben:

exec sql select * into :AdressSatz from qtemp/adresse fetch first row only.

Das erscheint uns alles sehr umständlich. Hat jemand eine bessere Idee?

Vielen Dank im Voraus.

Dieter