-
Objekt auslesen mit JSON_VALUE
Hallo zusammen,
ich möchte mit der SQL-Funktion json_value einen JSON-String auslesen. Einfache Werte, z.B. einen Namen, kann ich problemlos auslesen. Ich möchte aber gerne ein ganzes Unterobjekt aus dem JSON-String auslesen und (z.B.als Clob oder langer varchar-String) weiterverarbeiten.
Hier ein Beispiel, das mein Problem beschreibt. Mein JSON hat auf der obersten Ebene 2 Elemente (id, und address). Das Element address ist ein Objekt, das wiederum weitere Werte beinhaltet. An den folgenden SQL-Snippets sieht man, dass ich an die einzelnen Element herankomme. Aber an das Gesamtobjekt komme ich nicht:
Code:
-- Folgendes klappt (Der Result ist 2):
values json_value(
'{ "id": 2,
"address": {
"name": "Meier",
"addressType": "privat",
"street": "Goethestraße 4"
}
}',
'$.id' returning varchar(1000));
-- Folgendes klappt auch (Der Result ist Meier):
values json_value(
'{ "id": 2,
"address": {
"name": "Meier",
"addressType": "privat",
"street": "Goethestraße 4"
}
}',
'$.address.name' returning varchar(1000));
-- Folgendes klappt nicht (Der Result ist null):
values json_value(
'{ "id": 2,
"address": {
"name": "Meier",
"addressType": "privat",
"street": "Goethestraße 4"
}
}',
'$.address.*' returning varchar(1000));
Ist die json_value Funktion vielleicht nur in der Lage, "Einzelwerte" zu liefern?
LG, Dieter
-
Du musst die Hierarchie des Namens beachten:
id.adress.name
Somit kannst du eben alle einzelnen Felder in Spalten umsetzen.
Jede {} kannst du quasi als Sub-DS ansehen, die mit likeds() definiert wurde.
-
Hallo Baldur,
danke für deine Nachricht.
ich habe mein Problem wahrscheinlich nicht klar genug ausgedrückt:
An die einzelnen Felder komme ich problemlos dran, auch an die Subfelder von address. Siehe das 2. Beispiel: $.address.name'
Dabei kommt der korrekte Name raus (Meier).
Ich möchte im Falle von address aber nicht die einzelnen konkreten Felder zurückbekommen (dafür müsste ich dann ja pro Feld json_value aufrufen), sondern ich möchte die Gesamtheit aller Subfelder von address haben. Und zwar als ein clob, dass das JSON-Subobjekt von address enthält.
Mein Ziel ist es, das Subobjekt "address" an ein anderes RPG-Programm weiterzugeben und dort verarbeiten zu lassen. Es geht mir um Modularisierung.
Möglicherweise geht das mit der json_value Funktion nicht, aber die Doku von IBM schreibt im Bereich sql-json-path-expression, dass json-path-key-name entweder ein . oder ein * sein könnte.
Siehe https://www.ibm.com/docs/en/i/7.3?to...ath-expression
-
versuchs mal mit json_query
https://www.ibm.com/docs/en/i/7.3?to...ons-json-query
Code:
values json_query(
'{ "id": 2,
"address": {
"name": "Meier",
"addressType": "privat",
"street": "Goethestraße 4"
}
}', '$.address');
-
Hallo Ahoy!
Das ist ganz genau das, was ich gesucht habe. Super!
Man lernt nie aus.
Danke an alle für eure Mühe!
LG, Dieter
Similar Threads
-
By Rene Marquardt in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 03-03-15, 08:10
-
By Bodo Roggenkamp in forum IBM i Hauptforum
Antworten: 18
Letzter Beitrag: 01-04-10, 06:47
-
By rschaefer in forum NEWSboard Drucker
Antworten: 4
Letzter Beitrag: 09-11-04, 12:19
-
By StephanV in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 02-11-04, 13:31
-
By Kirsten Steer in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 28-04-03, 08:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks