web-dev-qa-db-fra.com

Comment analyser JSON dans PostgreSQL

J'ai une table dans ma base de données, qui contient une colonne variant en caractères et cette colonne a json. J'ai besoin d'écrire une requête, qui analysera en quelque sorte ce json dans des colonnes séparées.

J'ai trouvé la fonction json_each ici mais je ne comprends pas comment travailler avec.

16
Ivan Ursul

Je l'ai compris, les gars

si j'ai des livres de table enter image description here

Je peux facilement écrire une requête

SELECT 
   id, 
   data::json->'name' as name
FROM books;

Et cela se traduira par

enter image description here

Je peux aussi essayer d'obtenir une colonne inexistante

SELECT 
   id, 
   data::json->'non_existant' as non_existant
FROM books;

Et dans ce cas, j'obtiendrai un résultat vide

enter image description here

26
Ivan Ursul

Génial, merci pour le partage. J'ai trouvé que vous pouvez aller plus loin comme:

SELECT 
   id, 
   data::json->'name' as name,
   data::json->'author' ->> 'last_name' as author
FROM books;
6
hit3k