javascript - 将 PHP 数组插入带有键值的 JavaScript 变量
问题描述
首先,对不起,如果我的问题是重复的,但我真的尝试了很多东西但没有结果。其次,我的问题是,在使用“json_encode($php_array)”并将其插入 js 变量后,输出是“[object Object]”,而不是 $php_array。
对数组使用键(错误结果)
<script type="text/javascript">
// Some functions here
<?php
$php_array = array('name'=>'joe','10','cat');
$js_array = json_encode($php_array);
echo "var javascript_array = ". $js_array . ";\n";
?>
alert(javascript_array); // Output is: [object Object]
</script
不使用密钥(好结果)
<script type="text/javascript">
// Some functions here
<?php
$php_array = array('joe','10','cat');
$js_array = json_encode($php_array);
echo "var javascript_array = ". $js_array . ";\n";
?>
alert(javascript_array); // Output is: abc,def,ghi
</script
我期望[{"name":"joe","cat"}]的输出,但输出是[object Object]
解决方案
这是因为 javascriptalert()
函数不是很聪明 - 它知道如何很好地输出数组,但是对于对象它只是放弃并说“它是一个对象!”。
您可以像这样对对象进行漂亮的表示:
const prettyOutput = JSON.stringify(javascript_array, null, 4); //use indentation of 4 spaces
alert(prettyOutput);
推荐阅读
- ios - Flutter / FCM 通知未到达 Codemagic iOS 版本
- python - 在python中获取字典的一部分
- tree - 具有标记为 Y、Y、Z 的 3 个节点的不同有序树的数量是?
- postgresql - EF Core postgresql 字符串比较(不区分大小写)
- sed - Sed - 如何删除运行命令后显示的多余字符?
- android - 如何在 JetpackCompose 中将 ImageVector 转换为 ImagePainter?
- jinja2 - 如何有条件地将 null 作为 cookiecutter 提示中的默认值?
- ansible - 在 Ansible 中运行需要批准的脚本
- python - 在 Python 中将字符串解析为整数时出现问题
- python - 如何在 Python 中将换行符写入 UTF-16 BE 中的文件?