[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Du musst aufpassen, wo Du aufsetzst.
    Das Array ist indexFields und nicht item .

    Versuch's mal so:
    Code:
    select * from JSON_TABLE(:JSON,'$.indexFields[*]'                  
                      COLUMNS (fieldName  VARCHAR(100) PATH '$.fieldName',
                               fieldLabel VARCHAR(100) PATH '$.fieldLabel',
                               item       VARCHAR(100) PATH '$.item',
                      NESTED '$.item.Row[*].ColumnValue[*]'
                      COLUMNS (FieldName1  VARCHAR(100) PATH '$.FieldName' Default '' on empty,
                               FieldLabel1 VARCHAR(100) PATH '$.FieldLabel',
                               Item1       VARCHAR(100) PATH '$.Item'
                                ))) AS X;
    NULL-Werte kann man entweder einer Default-Anweisung bei der Spalten-Definition im JSON_TABLE oder der Funktion COALESCE in der SELECT-Zeile in Default-Werte konvertieren.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  2. #2
    Registriert seit
    Oct 2013
    Beiträge
    9
    Super, wieder was gelernt! Dieses Forum ist klasse, Dank hier an Birgitta.

    Bisher habe ich nested arrays immer komplett in entsprechend lange CHAR-Felder ausgelesen und diese dann später in anderen Procedures wiederum mit JSON_TABLE verarbeitet.

    Gerade wenn man mehr als ein eingebettetes Array im JSON hat kann das für die Struktur des Programms durchaus nicht schlecht sein. Immer vorausgesetzt, dass die Datenmengen je Array überschaubar sind.

    Thomas

  3. #3
    Registriert seit
    Aug 2018
    Beiträge
    7
    Ich danke euch vielmals für die tolle Hilfe.

    In diesem Forum findet man immer kompetente Hilfe.

    Hier nochmal die funktionierende SQL Anweisung:

    Code:
    select * from JSON_TABLE(:JSON,'$.indexFields[*]'                  COLUMNS (fieldName  VARCHAR(100) PATH '$.fieldName' Default '' on empty,
                                      fieldLabel VARCHAR(100) PATH '$.fieldLabel' Default '' on empty,
                                      item       VARCHAR(100) PATH '$.item' Default '' on empty,
    
    
                        NESTED  '$.item.Row[*].ColumnValue[*]'
                    COLUMNS (FieldName1  VARCHAR(100) PATH '$.FieldName' Default '' on empty,
                                     FieldLabel1 VARCHAR(100) PATH '$.FieldLabel' Default '' on empty,
                                     Item1       VARCHAR(100) PATH '$.Item' Default '' on empty
                                               ))) AS X;

Similar Threads

  1. Rest Anfrage und Json return
    By Robi in forum NEWSboard Programmierung
    Antworten: 12
    Letzter Beitrag: 08-04-20, 15:01
  2. JSON Daten mit JSON_TABLE
    By Peet in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 18-03-20, 12:36
  3. HTTPS Aufruf mit JSON Input
    By derMuller in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-12-17, 11:05
  4. JSON in RPG verarbeiten
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 13-07-16, 14:23

Tags for this Thread

Berechtigungen

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