php - 无法将字符串解析为 JSON 对象,无法显示来自 javascript 的警告框

标签 php javascript html json

编辑:已解决。使用以下任何一种解决方案,但需要将 document.onload 更改为 window.onload。也可以在不需要 window.onload 函数的情况下工作。

这是我正在使用的 test.php 文件

<?php 
  include("conn.php");
?>

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>

    <script src="js/jquery.js"></script>
    <script type="text/javascript">
        document.onload = function (){
          var jsonString = '<?php echo json_encode($rowarr); ?>';
          var jsonObj = jQuery.parseJSON( jsonString );
          console.log(jsonObj);
          alert( jsonObj.Auckland );
    };

  </script>
</body>
</html>

我已经在 Chrome 开发者工具中验证了 jsonString 的值是

'{"Auckland":37616,"Wellington":35357,"Christchurch":29818}'

在那之后,我在控制台或任何警告框中都看不到任何日志。我也试过 JSON.parse 方法而不是 jQuery.parseJSON 无济于事。

我正在尝试将此 JSON 转换为用于 google charts geo chart 的数据表格式看起来像这段代码

var data = google.visualization.arrayToDataTable([
    ['City',   'Population', 'Area'],
    ['Rome',      2761477,    1285.31],
    ['Milan',     1324110,    181.76],
    ['Naples',    959574,     117.27],
    ['Turin',     907563,     130.17],
    ['Palermo',   655875,     158.9],
    ['Genoa',     607906,     243.60],
    ['Bologna',   380181,     140.7],
    ['Florence',  371282,     102.41],
    ['Fiumicino', 67370,      213.44],
    ['Anzio',     52192,      43.43],
    ['Ciampino',  38262,      11]
  ]);

最佳答案

如果你不把它作为一个字符串,它就是一个对象,你就不必解析它

var jsonObj = <?php echo json_encode($rowarr); ?>;

代替

var jsonString = '<?php echo json_encode($rowarr); ?>';
var jsonObj = jQuery.parseJSON( jsonString );

看起来 document.onload 没有触发/已经触发了?您应该改用 window.onload$(document).ready()

关于php - 无法将字符串解析为 JSON 对象,无法显示来自 javascript 的警告框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659940/

相关文章:

javascript - 使用 Onsubmit 从表单调用 Javascript

javascript - 套接字不适用于 jQuery Mobile 事件

javascript - 如何使用数组元素作为按钮标签动态创建单选按钮

javascript - window.confirm 在 Chrome 中没有交互就消失

javascript - 当查询使用 SQL 变量时 Mysqli PHP 准备好的语句

php - CSS Div 内联 block 内容叠加

javascript - js 仅删除默认消息 onclick,而不删除用户输入的文本

html - 制作一个带有内联按钮的div

php - PHP解析/语法错误;以及如何解决它们

php - EC2 Ubuntu mysql_connect 函数导致 500 Internal Server Error