-
 Zitat von rischer
Interessant, will aber bei mir nicht funken.
Ich habe ein JSON-Array in meiner Datenbank das so aussieht:
PHP-Code:
{ "displayinformation": {"detail": [{"name":"ZZESCD","contentdecimal":null,"contentstring":"", "type":"string", "colour":"GRN", "visible": true, "protected": false, "underlined": false, "highlighted": false, "haserror": false, "desciption": false},{"name":"ZZIITX","contentdecimal":null,"contentstring":"ÄNDERN", "type":"string", "colour":"GRN", "visible": true, "protected": false, "underlined": false, "highlighted": false, "haserror": false, "desciption": false},{"name":"Z1ZXSB","contentdecimal":null,"contentstring":"", "type":"string", "colour":"GRN", "visible": true, "protected": false, "underlined": false, "highlighted": false, "haserror": false, "desciption": false}]}}
Setze ich ein Select darauf ab a la:
select
value from tsto.wrkjson,
table(systools.json_table(json_info,'displayinform ation.detail','s:32')) as x
bekomme ich kein Ergebnis angezeigt (aber auch keinen Fehler).
Mache ich es so:
select
cast(data1.value as varchar(20) ccsid 1141) as name,
from
tsto.wrkjson j, table
(systools.json_table(j.JSON_INFO,'displayinformati on.detail.name','s
:20')) data1
Dann bekomme ich x (Anzahl der Elemente im Array) Records mit dem Inhalt von Name.
Ohne Cast geht es bei mir übrigends nicht (obwohl ich CCSID 1141 im Job habe), sonst bekomme ich kryptische Zeichen angezeigt.
Was ich bräuchte wäre die dynamische Auslesung aller Inhalte eines Array-elements also name, string, colour etc. auf einmal. Das hab ich noch nicht geschafft.....
So funkts zumindest jetzt bei mir zufriedenstellend:
select
cast(value as varchar(200) ccsid 1141) from tsto.wrkjsopn,
table(systools.json_table(json_info,'displayinform ation.detail',
's:200')) as x
das ist so halbwegs zufriedenstellend aber folgendes ist besser:
select
substr(JSON_VAL(x.value,'name','s:10'), 1, 10) as Name,
substr(JSON_VAL(x.value,'type','s:5'), 1, 7) as Typ,
substr(JSON_VAL(x.value,'colour','s:3'), 1, 3) as Colour
from tsto.wrkjson,
table(systools.json_table_binary
(json_info,'displayinformation.detail',
's:200')) as x
Wobei das 's:200' die maximale Grösse eines Elements im Array abdecken muß, sonst gehts wieder nicht... ob dann aber aus diesem Element auch andere Datentypen extrahieren kann wird sich weisen...
Similar Threads
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 25
Letzter Beitrag: 14-02-18, 11:11
Tags for this Thread
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