在Javascript(jQuery)中解码JSON数组(来自PHP)

我先写JSON:

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); print json_encode(array( "array" => $arr )); 

然后在jQuery我做:

 j.post("notifications.php", {}, function(data){ 

现在这是我有点困惑的地方,就像我通常做的那样:

 data.array 

要获取数据,但我不知道如何处理数组。 data.array[1]没有用。

谢谢!

PHP的关联数组成为javascript中的对象(哈希)。

 data.array.a === 1 data.array.b === 2 // etc 

如果要枚举这些值

 for ( var p in data.array ) { if ( data.array.hasOwnProperty( p ) ) { alert( p + ' = ' + data.array[p] ); } } 

@Peter已经解释过,关联数组在PHP中被编码为JSON对象。

所以你也可以将PHP数组更改为:

 $arr = array(1,2,3,4,5); // or array('a', 'b', 'c', 'd', 'e'); 

但是,另一个重点是确保jQuery将服务器的响应识别为JSON而不是文本。 为此,将第四个参数传递给post()函数:

 j.post("notifications.php", {}, function(data){...}, 'json');