正如我上面所说,我有一个 PHP 脚本和一个 JavaScript,我有一些对象可以在服务器端读取文本文件,然后将数据传递给 JavaScript。
这是我的全部代码:
map .html:http://www.pastebin.com/b45mbvgp和 index.php:http://www.pastebin.com/zibdquzu
真正重要的部分:
var x = <?php echo json_encode($streetsObject); ?>;
var obj = eval("("x")");
我也试过
var obj = JSON.parse(x);
X 变量确实设置为传递对象的大小,527(已测试)但是当我尝试使用 eval 或 JSON 解析函数时根本不起作用。我的 html 代码中是否有某种错误干扰了我对其他库的调用?如果是这样那就太奇怪了,因为 kinetic.js 工作得很好。我一直在谷歌搜索 JSON 的例子,但我还没有看到解析传递的对象的例子,它都是本地对象的例子:(
(如果我删除 eval/json 代码行,代码工作正常)
最佳答案
简单地做:
var obj = <?php echo json_encode($streetsObject); ?>;
JSON 表示 JavaScript 对象表示法。如果你直接将 JSON 插入到 Javascript 中,它会运行良好,就在这种情况下。无需解析。不建议将 eval
用于 JSON 解析,但这同样适用(注意 eval
实际上有效,因为 JSON 是有效的 Javascript!)。
JSON.parse
仅当您在 Javascript 字符串中包含 JSON 时才需要。所以这会起作用:
var str = '<?php echo json_encode($streetsObject); ?>';
var obj = JSON.parse(str);
关于javascript - 无法使 JSON 解析和评估在 JavaScript 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21712672/