我正在使用PHP从我的服务器检索一些数据。我想在javascript应用程序中使用这些数据,所以我正在做这样的事情:
var polylines = <?php echo json_encode($polylines); ?>;
$polylines
只是一个PHP数组,这个等式的右边只是一个PHP字符串。但我注意到polylines
现在表现为一个对象,即使我从未调用过JSON.parse()函数。所以这引出了我的问题,是否需要JSON.parse()?或者javascript“检测”你输入的字符串是json,并自动将其解析为一个对象(就像在这种情况下似乎已经完成)?
答案 0 :(得分:2)
JSON.parse()
。此代码将JSON文本转储到JavaScript变量赋值的右侧。 JSON是JavaScript的严格子集,所以你在这里真正做的是生成JavaScript代码。 JavaScript没有“看到”字符串。客户端解析器可以看到JavaScript对象文字。
答案 1 :(得分:2)
取决于你如何让php进入客户端浏览器。 在这种情况下,你不会在javascript中得到双引号。
案例1: var polylines =“[\”key \“:12]”; 对于这种情况,你必须做JSON.parse
案例2: var polylines = [“key”:12]; 对于这种情况,您不需要执行JSON.parse。这是你的情况。