Avant que je n’oublie à nouveau, voici comment exporter le résultat d’une requête SQL en JSON avec PostgreSQL.
Supposons qu’on ait la table suivante :
SELECT * FROM user;
-- id | first_name | last_name | age
-- ----+-------------+-----------------
-- 1 | Alice | Hamilton | 101
-- 2 | Bob | Bemer | 84
-- (2 rows)
Il suffit alors d’utiliser les fonctions row_to_json
pour convertir chaque ligne en un document JSON et json_agg
pour convertir le tout en un tableau de documents JSON :
COPY (
SELECT json_agg(row_to_json(user))
FROM (
SELECT id, first_name as firstname, last_name as lastname
FROM user
ORDER BY age ASC
) AS user
) TO '/tmp/users.json';
Et alors :
cat '/tmp/users.json'
[{"id":2,"firstname":"Bob","lastname":"Bemer"},{"id":1,"firstname":"Alice","lastname":"Hamilton"}]
Voilà !