Bonjour à tous,
Pour résumer: nous disposons dans mon entreprise de la version V7.3 TR4. Avec les nouveaux opérateurs SQL/JSON, c'est assez facile de parser un Json contenant des tableaux. Par exemple, avec le Json suivant:
{"data":[{"id":"_1001"},{"id":"_1002"},{"id":"_1003"},{"id":"_1004"}]}
On peut utiliser :
SELECT Y.* FROM JSON_TABLE(
'{"data":[{"id":"_1001"},{"id":"_1002"},{"id":"_1003"},{"id":"_1004"}]}'
,'lax $' COLUMNS(
NESTED PATH 'lax $.data[*]' COLUMNS (ID VARCHAR(50) PATH '$.id' ))) as y;
Et on obtient :
_1001
_1002
_1003
...
Mon problème est que le JSON que je dois consommer en input n'a pas de nom de tableau:
{[
{"id":"_1001"},
{"id":"_1002"},
{"id":"_1003"},
{"id":"_1004"}
]}
Et je n'ai pas encore trouvé la bonne syntaxe pour parser ce type de Json…
La solution que j'utilise actuellement consiste à ajouter un nom de tableau à l'aide d'un concat:
SELECT Y.* FROM JSON_TABLE(
'{"data":'
concat Substr('{[{"id":"_1001"},{"id":"_1002"},{"id":"_1003"},{"id":"_1004"}]}', 2)
,'$.data[*]' Columns(Number VarChar(10) path '$.id')) AS Y;
Mais j'aimerais savoir si l'un d'entre vous a une meilleure solution?
Parsing Json lorsqu'il n'y a pas de nom de tableau...
Parsing Json lorsqu'il n'y a pas de nom de tableau...
Cordialement
Bertrand Menetrier
Division Solutions Assurance & BI
Vaudoise Assurances
Bertrand Menetrier
Division Solutions Assurance & BI
Vaudoise Assurances
Re: Parsing Json lorsqu'il n'y a pas de nom de tableau...
Bonjour,
Nous avons le même soucis, mais aucune solution trouvée effectivement. Le JSON semble devoir être formaté correctement.
Je remonte ce sujet car si une solution existe je suis preneur.
Nous avons le même soucis, mais aucune solution trouvée effectivement. Le JSON semble devoir être formaté correctement.
Je remonte ce sujet car si une solution existe je suis preneur.

Re: Parsing Json lorsqu'il n'y a pas de nom de tableau...
Bonjour,
Si je comprends bien la doc, un tableau dans un objet ne peut être anonyme : https://www.json.org/json-en.html
Par contre un flux JSON peut être un tableau !
Valide :
[1, 2, 3]
{"tableau":[1, 2, 3]}
Invalide :
{[1, 2, 3]}
Si je comprends bien la doc, un tableau dans un objet ne peut être anonyme : https://www.json.org/json-en.html
Par contre un flux JSON peut être un tableau !
Valide :
[1, 2, 3]
{"tableau":[1, 2, 3]}
Invalide :
{[1, 2, 3]}
Nathanaël
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
Re: Parsing Json lorsqu'il n'y a pas de nom de tableau...
Bonjour,
Scott Forstie donnait une astuce : https://gist.github.com/forstie/b45fd2c ... 2d63f9f628
et c'est intégré dans la TR2/TR8, voir https://www.volubis.fr/Pausecaf/PAUSECAF84.html
Scott Forstie donnait une astuce : https://gist.github.com/forstie/b45fd2c ... 2d63f9f628
et c'est intégré dans la TR2/TR8, voir https://www.volubis.fr/Pausecaf/PAUSECAF84.html
Christian Massé (Volubis.fr)
Re: Parsing Json lorsqu'il n'y a pas de nom de tableau...
Merci de l'info....