php - 使用 JavaScript 从 PHP 访问 JSON 数组

标签 php javascript

我试图了解我的 PHP 脚本如何将数组传递给我的 JavaScript 代码。使用以下 PHP,我传递一个数组:

$c = array(3,2,7);

echo json_encode($c);

我的 JavaScript 如下:

    $.post("getLatLong.php", { latitude: 500000},
        function(data) {
            arrayData = data
            document.write(arrayData)
            document.write(arrayData[0]);
            document.write(arrayData[0]);
            document.write(arrayData[0]);
        });
</script>

屏幕上打印出来的内容是

[3,2,7][3,

我试图了解 json_encode 的工作原理 - 我以为我能够将数组传递给变量,然后像普通 JavaScript 数组一样访问它,但它将我的数组视为一个大文本字符串。如何确保它像数组一样读取?

最佳答案

dataType参数传递给$.post :

$.post("getLatLong.php", { latitude: 500000},
   function(data){         
   // ...
}, 'json');

然后data将被正确解码。

或者您也可以使用$.parseJSON在回调中。

JSON解释:

JSON是一种数据交换格式。它指定传输的数据字符串的结构。 json_encode 将 PHP 数据结构(例如数组或对象)转换为 JSON,即具有特定格式的字符串。

json_encode($c) 将为您提供字符串 "[3,2,7]"

在客户端站点上,您会收到该字符串,但必须将其解码为正确的 JavaScript 数据结构。因此 $.parseJSON(data) 将为您提供一个包含 3 个元素的 JavaScript 数组(或者如果您将 'json' 作为第三个参数传递给 .post(),jQuery 正在执行自动为您解码)。

关于php - 使用 JavaScript 从 PHP 访问 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4701944/

相关文章:

php - 如何在 PHP 中获取图像 DPI

php - 刷新页面之前等待 UPDATE 完成

javascript - 为游戏建模 oop 层次结构

javascript - 谷歌可视化 map

javascript - 在 O(n) 时间内对 (1,2,3) 个数字的数组进行排序

php - 按字母顺序对 MYSQL 结果进行升序排序,但不将 'The' 排序为 T?

使用 microtime() : Negative time? 进行 PHP 分析

php - mysql php 中的 WHERE 子句

javascript - 在带有时间戳的日期之间计算时出现 NaN javascript 错误

javascript - 允许带有前导零的数字的正则表达式