Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
J'ai une requête que je souhaiterai convertir en un format de données JSON grâce aux fonctions postgresql.
voici un exemple de mon code :
select row_to_json(t)
from (
select text, pronunciation,
(
select array_to_json(array_agg(row_to_json(d))) \\ un objet tableau
from (
select part_of_speech, body \\ les informations qui sont censées s'imbriquer dans le tableau
from definitions
where word_id=words.id
order by position asc
) d
) as definitions
from words
where text = 'autumn'
) t
Mon problème se situe au niveau de l’imbrication, cela ne s'imbrique pas du tout mais duplique les lignes "text" et "pronunciation" pour afficher toutes les "definitions"
Voici le résultat attendu :
{
"text": "autumn",
"pronunciation": "autumn",
"definitions": [
{
"part_of_speech": "noun",
"body": "skilder wearifully uninfolded..."
},
{
"part_of_speech": "verb",
"body": "intrafissural fernbird kittly..."
},
{
"part_of_speech": "adverb",
"body": "infrugal lansquenet impolarizable..."
}
]
}
Or j'obtiens le résultat suivant qui n'est pas du tout satisfaisant :
{
"text": "autumn",
"pronunciation": "autumn",
"definitions": [
{
"part_of_speech": "noun",
"body": "skilder wearifully uninfolded..."
}
]
"text": "autumn",
"pronunciation": "autumn",
"definitions": [
{
"part_of_speech": "noun",
"body": "intrafissural fernbird kittly..."
},
]
"text": "autumn",
"pronunciation": "autumn",
"definitions": [
{
"part_of_speech": "noun",
"body": "infrugal lansquenet impolarizable..."
},
]
}
Je sèche complément sur le coup j'ai beau cherché je ne trouve aucune explication ni solution !
Merci pour votre aide.
Voila ce que j'obtiens avec ma requête :
[
{ "lignename" : "BERNARD",
"parcoursid" : 19761,
"courseid" : 20723,
"origine_destination" : "ALBERT",
"evt_comptage" : [{
"stopname" : "HENRY",
"stoptime" : "2016-01-18T21:15:29",
"latitude" : 48.618111,
"longitude" : -1.510928,
"passagersin" : 0,
"passagersout" : 0
}
]
}, {
"lignename" : "BERNARD",
"parcoursid" : 19761,
"courseid" : 20723,
"origine_destination" : "ALBERTL",
"evt_comptage" : [{
"stopname" : "HENRY",
"stoptime" : "2016-01-18T21:29:03",
"latitude" : 48.631719,
"longitude" : -1.508361,
"passagersin" : 13,
"passagersout" : 1
}
]
}
]
Or moi je voudrai plutôt :
[
{ "lignename" : "BERNARD",
"parcoursid" : 19761,
"courseid" : 20723,
"origine_destination" : "ALBERT",
"evt_comptage" : [{
"stopname" : "HENRY",
"stoptime" : "2016-01-18T21:15:29",
"latitude" : 48.618111,
"longitude" : -1.510928,
"passagersin" : 0,
"passagersout" : 0
},{
"stopname" : "HENRY",
"stoptime" : "2016-01-18T21:29:03",
"latitude" : 48.631719,
"longitude" : -1.508361,
"passagersin" : 13,
"passagersout" : 1
}
]
}
]
Bonjour à tous,
Je souhaiterai exporter une requête qui est transformée en format JSON mais j'ai un problème à ce niveau, je souhaite obtenir un résultat tel que :
{
"text": "autumn",
"pronunciation": "autumn",
"definitions": [
{
"part_of_speech": "noun",
"body": "skilder wearifully uninfolded..."
},
{
"part_of_speech": "verb",
"body": "intrafissural fernbird kittly..."
},
{
"part_of_speech": "adverb",
"body": "infrugal lansquenet impolarizable..."
}
]
}
Mais j'obtiens plutôt ça :
{
"text": "autumn",
"pronunciation": "autumn",
"definitions": [
{
"part_of_speech": "noun",
"body": "skilder wearifully uninfolded..."
},
]
{
"text": "autumn",
"pronunciation": "autumn",
"definitions": [
{
"part_of_speech": "verb",
"body": "intrafissural fernbird kittly..."
},
]
}
Comme vous le voyez définitions est séparé dans différentes lignes. voici mon code je ne trouve pas mon erreur :
SELECT array_to_json(array_agg(row_to_json(t) ) )
from (
SELECT lgn_nom AS LigneName, P.id AS PARCOURSID, C.id as courseID, origine_destination,
(
SELECT array_to_json(array_agg(row_to_json(d) ) )
FROM (
SELECT ECP.pnt_nom AS StopName,ECP.date AS StopTime, ECP.lat AS Latitude, ECP.lon AS Longitude,nb_in AS PassagersIn, nb_out AS PassagersOut
FROM evt_comptage ECP
WHERE ECP.id_evt_arret = EA.id
) d
) AS evt_comptage
FROM evt_arret EA, passage_horaire PH, parcours P , ligne L , course C
WHERE PH.id = EA.passage_horaire AND PH.course = C.id AND PH.parcours = P.id AND L.id = P.ligne
) t
Merci d'avance pour votre patience et votre réponse.
Pages : 1