如上所述,我有一个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代码行,代码可以正常工作)
答案 0 :(得分:4)
简单地说:
var obj = <?php echo json_encode($streetsObject); ?>;
JSON表示JavaScript Object Notation。如果您直接将JSON插入Javascript,它将运行正常,就在这种情况下。无需解析。不建议将eval
用于JSON解析,但同样适用于此(注意eval
实际上有效,因为JSON是有效的Javascript!)。
JSON.parse
。所以这会奏效:
var str = '<?php echo json_encode($streetsObject); ?>';
var obj = JSON.parse(str);