如何有效地将 JSON 数据从 PostgreSQL jsonb 字段传递到 Javascript?
P粉596161915
P粉596161915 2023-09-12 14:52:26
[PHP讨论组]

我正在寻找一种智能解决方案来用 Javascript 处理来自 postgresql 数据库的一些 JSON 数据。我知道我需要通过 php 读取数据库并将数据作为数组传递给 Javascript。

通常你会做这样的事情:

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

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

但是我的数据已经以 JSON 格式存储在 postgresql jsonb 字段中。所以我希望有一种方法可以更有效地传递数组,这样PC就不必重复相同的数据两次。

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

这段代码不起作用,但应该大致显示我的想法。

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

如果有人能指出我正确的方向,那就太好了。

P粉596161915
P粉596161915

全部回复(1)
P粉744831602

好吧,我今天感觉有点傻。我找到了解决方案,无需创建新数组,只需将所有字符串连接在一起即可。

<?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>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号