[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.102

    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    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

  4. #4
    Registriert seit
    Oct 2019
    Beiträge
    16
    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');

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    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

  1. Sicherungsdatum IFS Objekt auslesen
    By Rene Marquardt in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 03-03-15, 09:10
  2. Objekt duplizieren ohne Objekt zu ändern
    By Bodo Roggenkamp in forum IBM i Hauptforum
    Antworten: 18
    Letzter Beitrag: 01-04-10, 07:47
  3. Druck mit WSCST-Objekt (:DWRNBR)
    By rschaefer in forum NEWSboard Drucker
    Antworten: 4
    Letzter Beitrag: 09-11-04, 13:19
  4. Objekt mit Größen finden
    By StephanV in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 02-11-04, 14:31
  5. Objekt-Datenbank Matisse mit XML Integration durch HiT jAllora
    By Kirsten Steer in forum Archiv NEWSblibs
    Antworten: 0
    Letzter Beitrag: 28-04-03, 09:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •