dschroeder
23-11-22, 10:16
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:
-- 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
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:
-- 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