Simplifier une requête de conversion en json
Bonjour,
pour l'instant, je teste sur une petite table les fonctions json de postgresql 9.4.5 avant de passer , si les résultats sont corrects, à des tables plus conséquentes (tables qui ne stockent pas de objets de type json, jsonb).
La table "types" à la structure suivante:
Code:
1 2 3 4 5
|
Colonne | Type |
idtype | smallint |
nom_type | character varying(25) | |
le but est d'obtenir une sortie sous forme d'un objet json comme ci-dessous:
Code:
1 2 3 4 5 6 7
|
{"types":[
{"idtype":1, "nom_type":"valeur1"},
{"idtype":2, "nom_type":"valeur2"},
{"idtype":3, "nom_type":"valeur3"},
{"idtype":4, "nom_type":"valeur4"}
]} |
j'ai obtenu ce résultat via la requête:
Code:
1 2
|
select json_build_object('types',(select array_to_json(array_agg(row_to_json(q)),true) from( select idtype, nom_type from types) q)); |
1) Est-il possible de simplifier cette requête ?
2) Les opérations sur les tables finales seront beaucoup plus complexes. Si le requêtage et la finalisation en objet json est souvent (toujours) aussi lourd, est-il préférable de passer par des fonction en plpython3u pour la mise en forme json ? Quel est votre retour d'expérience sur ce type de fonctionnalité ?
merci