Je recherche une solution intelligente pour traiter certaines données JSON d'une base de données postgresql en utilisant Javascript. Je sais que je dois lire la base de données via php et transmettre les données sous forme de tableau à Javascript.
Habituellement, vous feriez quelque chose comme ceci :
<?php $phpArray = array('apple', 'banana', 'orange'); $jsonString = json_encode($phpArray); ?> <script> var jsonString = '<?php echo $jsonString ?>'; var jsArray = JSON.parse(jsonString); </script>
Mais mes données sont déjà stockées dans le champ jsonb postgresql au format JSON. J'espère donc qu'il existe un moyen de transmettre le tableau plus efficacement afin que le PC n'ait pas à répéter deux fois les mêmes données.
root@monitor:~ $ sudo -u postgres psql postgres=# \c monitor monitor=# SELECT * FROM "drone001"; id | data ---+----------------------------------------------------------------------------------------------- 1 | {"RX": 13.7, "Speed": 10.1, "Azimuth": 897, "Heading": 125, "DateTime": "2023-03-19 04:14:49"} 2 | {"RX": 13.4, "Speed": 10.2, "Azimuth": 896, "Heading": 125, "DateTime": "2023-03-19 04:14:47"} 3 | {"RX": 13.3, "Speed": 10.1, "Azimuth": 896, "Heading": 125, "DateTime": "2023-03-19 04:14:45"} 4 | {"RX": 13.7, "Speed": 10.1, "Azimuth": 896, "Heading": 127, "DateTime": "2023-03-19 04:14:43"} 5 | {"RX": 13.1, "Speed": 10.1, "Azimuth": 896, "Heading": 125, "DateTime": "2023-03-19 04:14:41"} [...]
Ce code ne fonctionne pas mais devrait montrer à peu près ce que j'ai en tête.
<?php require_once 'pgsql.php'; $db = new database(); $res = $db->select('drone001'); $jsondata = array(); while ($ds = pg_fetch_object($res)) { $jsondata[] = $ds->data; } ?> <script type="text/javascript"> var jsArray = JSON.parse('<?php echo $jsondata ?>'); console.log(jsArray); </script>
Ce serait formidable si quelqu'un pouvait m'orienter dans la bonne direction.
D'accord, je me sens un peu idiot aujourd'hui. J'ai trouvé la solution, pas besoin de créer un nouveau tableau, il suffit de concaténer toutes les chaînes ensemble.