使用JavaScript从PHP访问JSON数组

时间:2011-01-15 20:24:07

标签: 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数组一样访问它,但它将我的数组视为一个大的文本字符串。如何确保它像数组一样读取它?

1 个答案:

答案 0 :(得分:4)

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会自动为您执行解码)。