PDA

View Full Version : Rest Anfrage und Json return



Seiten : 1 [2]

Fuerchau
11-12-18, 09:02
Punkt statt Komma must du für die aktuelle Umgebung das Dezimalformat setzen (leider Compile-Time per "Set Option ...".
In wie weit nun "null" als NULL-Value oder als Text "null" interpretiert wird kann ich nicht sagen.
Normalerweise gibt es da einen Leerstring.
Ich denke also, dass du diese Felder dann als Zeichenfelder definieren musst und per %dec()-Inlinefunktion dann umwandeln musst. Das mache ich bei XML allerdings auch schon so (Zahlen, Datum).

Kerki
08-04-20, 14:06
Hallo *All

ich habe zu diesem Thema noch eine Frage und zwar habe ich einen langen JSON-String mit mehreren sich wiederholenden Segmenten, diese will ich jetzt nicht immer einzeln angeben sondern dynamisch durchgehen und dort weiß ich nicht genau wie ich es angeben soll.

Wenn ich
'lax $.list[0].id') angebe kommt der erste Wert und es geht gut.
Wie muss ich es jetzt noch angeben, das er die einzelnen Id durchgeht?

JSON_Data={"list":[{"id":1},{"
id":2},{"
id":3},{"
id":4}}

Exec Sql
Declare Mycursor Cursor For
select id
from JSON_TABLE(:json, '$' COLUMNS( id VARCHAR(10) PATH 'lax $.list[???].id'))
For Fetch Only;



Exec Sql
Open Mycursor;
dow Sqlcode = *zero;
Exec Sql
Fetch Mycursor Into :wid;


If Sqlcode = *zero;
dsply wid;
Endif;
enddo;


Danke im voraus,
Kerki

B.Hauser
08-04-20, 15:01
Du must mit allen Elementen des Arrays aufsetzen:


Select *
From JSON_TABLE('{"list": [{"id":1},{"id":2},{"id":3},{"id":4}]}',
'$.list '
Columns("id" VarChar(10) )) x;

Select *
From JSON_TABLE('{"list": [{"id":1},{"id":2},{"id":3},{"id":4}]}',
'$.list '
Columns("id" VarChar(10) Path 'lax $.id')) x;

Im übrigen ist Dein JSON-Dokument nicht korrekt, d.h. die schließende eckige Klammer fehlt!

Birgitta