2

我正在使用 PHP 从我的服务器中检索一些数据。我想在 javascript 应用程序中使用这些数据,所以我正在做这样的事情:

var polylines = <?php echo json_encode($polylines); ?>;

$polylines只是一个 PHP 数组,而这个等式的右边仅仅是一个 PHP 字符串。但我注意到它polylines现在表现为一个对象,即使我从未调用过 JSON.parse() 函数。所以这让我想到一个问题,需要 JSON.parse() 吗?或者javascript会“检测”你输入的字符串是json,并自动将其解析为一个对象(就像它在这种情况下所做的那样)?

4

2 回答 2

3

不,JSON.parse()在这种情况下不需要。

此代码将 JSON 文本转储到 JavaScript 变量赋值的右侧。JSON 是 JavaScript 的一个严格子集,因此您在这里真正要做的是生成 JavaScript 代码。JavaScript 不会“看到”字符串。客户端解析器看到一个 JavaScript 对象字面量。

于 2013-05-30T13:01:17.503 回答
2

取决于您如何让 php 进入客户端浏览器。在这种情况下,您不会在 javascript 中得到双引号。

案例 1: var polylines = "[\"key\":12]"; 对于这种情况,您必须执行 JSON.parse

案例 2: var polylines = ["key":12]; 对于这种情况,您无需执行 JSON.parse。这是你的情况。

于 2013-05-30T13:13:25.650 回答