Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menghantar data JSON dengan cekap dari medan jsonb PostgreSQL ke Javascript?

Saya sedang mencari penyelesaian pintar untuk memproses beberapa data JSON daripada pangkalan data postgresql menggunakan Javascript. Saya tahu saya perlu membaca pangkalan data melalui php dan lulus data sebagai tatasusunan kepada Javascript.

Biasanya anda akan melakukan sesuatu seperti ini:

<?php
$phpArray = array('apple', 'banana', 'orange');
$jsonString = json_encode($phpArray);
?>

<script>
var jsonString = '<?php echo $jsonString ?>';
var jsArray = JSON.parse(jsonString);
</script>

Tetapi data saya sudah disimpan dalam medan postgresql jsonb dalam format JSON. Jadi saya berharap ada cara untuk menghantar tatasusunan dengan lebih cekap supaya PC tidak perlu mengulang data yang sama dua kali.

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"}
[...]

Kod ini tidak berfungsi tetapi harus menunjukkan secara kasar apa yang ada dalam fikiran saya.

<?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>

Alangkah baiknya jika seseorang dapat menunjukkan saya ke arah yang betul.

P粉596161915P粉596161915424 hari yang lalu603

membalas semua(1)saya akan balas

  • P粉744831602

    P粉7448316022023-09-13 10:07:37

    Baiklah, saya berasa agak bodoh hari ini. Saya dapati penyelesaiannya, tidak perlu mencipta tatasusunan baru, hanya menggabungkan semua rentetan bersama-sama.

    <?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>

    balas
    0
  • Batalbalas