[PostgreSQL 12.12] Récupérer des éléments dans un json
Bonjour,
je souhaite via une requête PostgreSQL, réccupérer le contenu d'un json.
On suppose que j'ai deux tables client et article.
Je vous met que la table article pour le test.
Code:
1 2 3 4 5 6 7 8 9
| create table article (
id_article serial primary key,
designation varchar not null,
prix int not null,
detail json not null,
id_client int not null,
foreign key (id_client)
references client (id_client)
); |
J'ai ajouté un élément dans la table article et ce qui nous intéresse est le champs detail
Code:
1 2 3 4 5 6 7 8 9 10 11
|
insert into article (
designation,
prix,
detail,
id_client)
values (
'Table à manger',
450,
'{"adresseArtisan":"25 rue Noblet, 95100 Argenteuil","reference":562485662, "precisions":{"element":[{"key":"matiere","value":"BOIS"},{"key":"poids","value":"12kg"}]}}',
1); |
Detail:
Code:
'{"adresseArtisan":"25 rue Noblet, 95100 Argenteuil","reference":562485662, "precisions":{"element":[{"key":"matiere","value":"BOIS"},{"key":"poids","value":"12kg"}]}}'
La requête suivante
Code:
select detail->>'precisions' from article where id_article=1;
me renvoie:
Code:
1 2 3
| precisions
-------------------------------------------------------------------------------
{"element":[{"key":"matiere","value":"BOIS"},{"key":"poids","value":"12kg"}]} |
Ce qui m'intéresse, c'est de réccupérer les valeurs BOIS et 12kg via un select.
J'aimerais faire quelque chose dans ce genre:
select detail->>'precisions'->>'element'->>BOIS mais je ne sais pas comment m'y prendre.
Après je me doute que pour réccupérer le contenu de element, il faut utiliser un array_to_string. Mais, déjà il faut que j'accède à element.
Auriez vous une piste s'il vous plaît?
Je vous remercie par avance,