Bonjour j'ai une requête de cette forme:
Model:
$this->db->select('LibelleVoiture as voituree,nb_km');
$this->db->from('Parcours');
$this->db->join('Voiture','Parcours.VoitureID_ID=Voiture.Voiture_ID');
$this->db->where('DateParcours <= NOW() - INTERVAL 1 WEEK');
$query=$this->db->get();
return $query->result_array();

Et j'aimerai récupérer les résultats et les transformer en format json de sorte à avoir cette structure:

{
"name": "Mercedes BENZ",
"data": [23987, 24784, 25899, 25569, 25897, 25668, 24114, 23899, 24987, 25111, 25899, 23221]
},

{
"name": "Renault Laguna",
"data": [21990, 22365, 21987, 22369, 22558, 22987, 23521, 23003, 22756, 23112, 22987, 22897]
},

{
"name": "Renault Safrane",
"data": [2345, 62365, 51987, 125, 2875, 8907, 987654, 8653, 87990, 3417, 82987, 2897]
}

]

Cooment pourrai-je procèder.

Merci

3 réponses


CI n'inclue pas de librairie gérant entièrement le json (juste la class output qui permet simplement de préciser l'entête d'un document) .
Tu dois le faire à la main, comme tu le ferais en php .

Essais ça peut être :

header('Content-type: application/json');
echo json_encode($this->your_model->getter());

Pas de librairie et d'automatisation au format json comme sous symfony2 par exemple, mais c'est simple à faire. Dans mes applications sous CI je prévois des controllers ou templates de views formatant du code spécifique, comme les requêtes ajax pour les récurrentes, j'ai un controller ajax qui s'occupe de ça, concernant le json ou xml j'ai des templates qui permettent de restructurer ces données.
Dans ton cas je ne pense pas que tu ais besoins de formater en json selon un template.

Mais comme te le dit @Benjamin Derepas il te suffit d'utiliser la fonction php json_encode en oubliant pas le helper CI header('Content-type: application/json') c'est important.