Zitat Zitat von Rainer Ross Beitrag anzeigen
Hallo Rischer,

ich hab mit den Arrays etwas rumprobiert:

PHP-Code:

Kundendaten im 
Array:

select                                                
 value from tsto
.wrkjson,                                  
 
table(systools.json_table(json_info,'kunde','s:32')) as x

Kunden
-Ids im Array:

select                                                
 value from tsto
.wrkjson,                                  
 
table(systools.json_table(json_info,'kunde.id','i')) as 
Quelle: http://www.volubis.fr/news/liens/courshtm/XML/JSON.HTM

Herzliche Grüße

Rainer
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.....