编辑:已解决。使用以下任何一种解决方案,但需要将 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/