Comment transmettre efficacement les données JSON du champ jsonb PostgreSQL vers Javascript ?
P粉596161915
P粉596161915 2023-09-12 14:52:26
0
1
600

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.

P粉596161915
P粉596161915

répondre à tous(1)
P粉744831602

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.

<?php
  require_once 'pgsql.php';

  $db = new database();
  $res = $db->select('drone001');
  while ($ds = pg_fetch_object($res)) {
    $jsondata .= $ds->data . ",";
  }
  $jsondata = "[" . rtrim($jsondata, ",") . "]";
?>

<script type="text/javascript">
  var jsArray = JSON.parse('<?php echo $jsondata ?>');
  console.log(jsArray);
</script>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!